RabbitMQ基础使用之集群构建

Posted jason007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ基础使用之集群构建相关的知识,希望对你有一定的参考价值。

简介

RabbitMQ是基于Erlang开发的一种消息队列服务,本篇文章主要部署三台机器用来实现集群的普通模式与镜像模式!欢迎大家吐槽交流学习!

特点

集群节点包括内存节点和磁盘节点,有了磁盘节点就支持消息的持久化。

1.安装

1.1安装前的准备工作

1.首先查看系统版本,我这里三台阿里云CentOS!
[[email protected] rabbit-rpm]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
2.规划修改所有节点的主机名。
[[email protected] rabbit-rpm]# cat /etc/hostname
Ali-Zookeeper-MQ01
[[email protected] rabbit-rpm]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.0.203 Ali-Zookeeper-MQ01
10.5.0.228 Ali-Zookeeper-MQ02
10.5.0.229 Ali-Zookeeper-MQ03
另外俩台改成对应的配置!
3.关闭防火墙
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service
# 查看防火墙状态
[[email protected] ~]# firewall-cmd --state
not running
4.安装Erlang
# yum安装epel-release
yum -y install epel-release
# 安装Erlang环境
yum -y install erlang  

1.2使用rpm正式安装mq

# 创建目录用来存放rabbitmq的rpm
mkdir /usr/local/src/rabbit-rpm
# 切换到/usr/local/rabbit-rpm目录                
cd /usr/local/src/rabbit-rpm
# 下载RabbitMQ-3.6.9安装包rpm
wget  http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm 
# 开始安装,当看到Complete!提示时,安装完成!    
yum -y install rabbitmq-server-3.6.9-1.el7.noarch.rpm

1.3配置mq集群-普通模式

首先要保证三台机器安装的软件版本一致,主机名配置文件一致!
集群-普通模式-配置操作

1.设置Erlang Cookie 
  Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。三台主机分别创建,给予400权限修改属主属组。cookie文件的内容要一致!
vim /var/lib/rabbitmq/.erlang.cookie
chmod 777 /var/lib/rabbitmq/.erlang.cookie
scp -r /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie
scp -r /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
2.启动各节点 
service rabbitmq-server start
3.组成集群,在02,03节点上执行命令将02,03加入01.
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected] --ram
rabbitmqctl start_app
4.如果需要退出集群
rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl start_app
5.查看集群状态
[[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node ‘[email protected]‘ ...
[{nodes,[{disc,[‘[email protected]‘]},
         {ram,[‘[email protected]‘,‘[email protected]‘]}]},
 {running_nodes,[‘[email protected]‘,‘[email protected]‘,
                 ‘[email protected]‘]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{‘[email protected]‘,[]},
          {‘[email protected]‘,[]},
          {‘[email protected]‘,[]}]}]
6.三台上都开启web管理功能
rabbitmq-plugins enable rabbitmq_management

web页面访问效果

1.4补充说明

启动 RabbitMQ 服务
systemctl start rabbitmq-server
查看 RabbitMQ 状态
systemctl status rabbitmq-server
停止 RabbitMQ 服务
systemctl stop rabbitmq-server
开启web管理
rabbitmq-plugins enable rabbitmq_management 
查看当前所有用户
rabbitmqctl list_users
查看默认guest用户的权限
rabbitmqctl list_user_permissions guest
由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 删掉默认用户guest
rabbitmqctl delete_user guest
添加新用户
rabbitmqctl add_user username password
设置用户tag
rabbitmqctl set_user_tags username administrator
赋予用户默认vhost的全部操作权限
rabbitmqctl set_permissions -p / username “.” “.” “.*”

以上是关于RabbitMQ基础使用之集群构建的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ:使用Docker构建RabbitMQ高可用负载均衡集群

04 RabbitMQ进阶2之集群和延迟投递

04 RabbitMQ进阶2之集群和延迟投递

04 RabbitMQ进阶2之集群和延迟投递

04 RabbitMQ进阶2之集群和延迟投递

高可用rabbitmq集群服务部署步骤