RabbitMQ集群搭建

1.首先在各个目标机器上安装RabbitMQ,这个地址上有各平台的安装步骤http://www.rabbitmq.com/download.html

因为我的服务器是Centos,所以选择http://www.rabbitmq.com/install-rpm.html

1.1 Install Erlang 安装Erlang   

       各版本RabbitMQ所要求的erlang版本一览 http://www.rabbitmq.com/which-erlang.html

    运行 yum install erlang

       但是发现erlang 安装的是   R16B-03.18.el7 ,无法满足RabbitMQ 3.7.6 最低erlang19.3的版本要求。

       因此需要更换一下安装方式,推荐使用此方式进行安装,这也是RabbitMQ官方推荐的 https://www.erlang-solutions.com/resources/download.html

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang

 

1.2安装RabbitMQ 

    下载rabbitmq 

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7-1.el7.noarch.rpm

以下使用‘root’运行

rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
# this example assumes the CentOS 7 version of the package
yum install rabbitmq-server-3.7.7-1.el7.noarch.rpm

一些常用的命令

$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务

$ sudo /sbin/service rabbitmq-server start # 启动服务

$ sudo /sbin/service rabbitmq-server status # 查看服务状态

$ sudo /sbin/service rabbitmq-server stop # 停止服务

# 查看当前所有用户 $ sudo rabbitmqctl list_users

# 查看默认guest用户的权限 $ sudo rabbitmqctl list_user_permissions guest

# 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 $ sudo rabbitmqctl delete_user guest

# 添加新用户 $ sudo rabbitmqctl add_user username password

# 设置用户tag $ sudo rabbitmqctl set_user_tags username administrator

# 赋予用户默认vhost的全部操作权限 $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

# 查看用户的权限 $ sudo rabbitmqctl list_user_permissions username

 

开启管理后台

sudo rabbitmq-plugins enable rabbitmq_management

开启成功后可以在浏览器中访问http://xx.xx.xx.xx:15672 使用刚才插入的用户名密码进行管理。

 

其它插件的处理 http://www.rabbitmq.com/plugins.html

#查看插件列表  

rabbitmq-plugins list

#enble插件 

rabbitmq-plugins enable plugin-name 

#disable插件

rabbitmq-plugins disable plugin-name  

根据自己所需开启插件

 

2.在各机器上安装好RabbitMQ后,构建集群

首先在每台/etc/hosts 中增加所有的机器  ip 机器名称,并保证能够相互PING通

如 10.0.0.2 A   (注:A为登录服务器显示的root@A)

    10.0.0.3 B

    ...

查看并修改各服务器中/var/lib/rabbitmq/.erlang.cookie的值,把所有的都修改成相同的值。

在B中运行 rabbitmqctl stop_app 停止运行

运行 rabbitmqctl join_cluster --ram rabbit@A 作为内存节点 或者吧ram 换为 disc 节点

加入成功后 rabbitmqctl start_app 

即可在管理后台看见B节点