1、实验环境

rabbitmq-node1.com192.168.1.112
rabbitmq-node2.com192.168.1.113
rabbitmq-node3.com192.168.1.128

2、配置前检查同步时间

#ntpdate pool.ntp.org

3、注意一定要修改hosts

#cat /etc/hosts
192.168.1.112   rabbitmq-node1.com rabbitmq-node1
192.168.1.113   rabbitmq-node2.com rabbitmq-node2
192.168.1.128   rabbitmq-node3.com rabbitmq-node3

4、安装erlang

#yum -y install erlang

5、安装rabbitqmq

#wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.6/rabbitmq-server-2.8.6-1.noarch.rpm
#yum -y install rabbitmq-server-2.8.6-1.noarch.rpm
 
[[email protected] ~]# /etc/init.d/rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.

CentOS+rabbitMQ集群配置

# rabbitmqctl status        //查看状态

6安装插件管理界面  

#mkdir -m 777 /etc/rabbitmq/ (如果目录已经存在直接执行 # chmod 777 /etc/rabbitmq/)
#rabbitmq-plugins enable rabbitmq_management
重启rabbitmq-server
#rabbitmqctl stop
#/etc/init.d/rabbitmq-server start

查看管理端口有没有启动:

# netstat -tnlp|grep 55672

CentOS+rabbitMQ集群配置 

浏览器打开http://IP:55672 账号密码都是guest

 

 

注意rabbitmq3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。

如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users[]

/etc/rabbitmq/rabbitmq.config文件完整内容如***意后面的半角句号):

[{rabbit, [{loopback_users, []}]}].

 

7rabbitmq集群配置

(1)设置每个节点Cookie

Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信

# cat /var/lib/rabbitmq/.erlang.cookie 
EJARCZORCOTEQWFGPWXR

(2)停止所有节点RabbitMQ服务,然后使用detached参数独立运行,这步很关键,尤其增加节点停止节点后再次启动遇到无法启动都可以参照这个顺序

[[email protected] ~]#rabbitmq-server -detached
[[email protected] ~]#rabbitmq-server -detached
[[email protected] ~]#rabbitmq-server -detached

(3)关于节点类型(ram |disk

ram节点的状态保存在内存中,disk节点保存在磁盘中被加入的节点为disk,如本例中[email protected]2ram节点,[email protected]1[email protected]ram节点可以通过rabbitmqctl cluster命令改变加入的集群以及节点类型该命令后可以加多个节点名称,指定的节点就会变成disk节点

[[email protected] ~]#rabbitmqctl cluster_status
[[email protected] ~]#rabbitmq stop_app
[[email protected] ~]#rabbitmqctl reset
[[email protected] ~]#rabbitmqctl cluster
[[email protected] ~]#rabbitmqctl start_app
 
指定为ram
[[email protected] ~]#rabbitmq stop_app
[[email protected] ~]#rabbitmqctl reset
[[email protected] ~]#rabbitmqctl cluster [email protected]
[[email protected] ~]#rabbitmqctl start_app
 
指定为disc
[[email protected] ~]#rabbitmq stop_app
[[email protected] ~]#rabbitmqctl reset
[[email protected] ~]#rabbitmqctl cluster [email protected] [email protected]
[[email protected] ~]#rabbitmqctl start_app

(4)自动配置集群,默认文件是没有的,如果需要必须手动创建

[[email protected] ~]# cat /etc/rabbitmq/rabbitmq.conf 
[
 
...
 
{rabbit, [
 
...
 
{cluster_nodes, ['[email protected]','[email protected]', '[email protected]']},
 
...
 
]},
 
...
 
].
 
[[email protected] ~]# cat /etc/rabbitmq/rabbitmq-env.conf 
RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq///需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/var/log/rabbitmq///log的路径
RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-2.8.6/plugins//插件的路径

(5)启动后就自动加入集群了

[[email protected] ~]#rabbitmq-server -detached
[[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node '[email protected]' ...
[{nodes,[{disc,['[email protected]','[email protected]']},
         {ram,['[email protected]']}]},
 {running_nodes,['[email protected]','[email protected]',
                 '[email protected]']}]
...done.

(6)在浏览器中可以看到所有节点的信息,如果其他节点信息没有显示启用web管理就好


CentOS+rabbitMQ集群配置 


转载于:https://blog.51cto.com/peaceweb/1589875

相关文章: