RabbitMQ集群搭建

准备三个节点,系统为CentOS7

Node IP
rabbitmq01 172.50.0.64
rabbitmq02 172.50.0.65
rabbitmq03 172.50.0.66

这里把node1作为master节点。

1、修改各节点hosts

# vim /etc/hosts
172.50.0.64 rabbitmq01
172.50.0.65 rabbitmq02
172.50.0.66 rabbitmq03

2、在各节点安装rabbitmq-server,并启动服务

# yum install -y rabbitmq-server
# systemctl start rabbitmq-server
# systemctl enable rabbitmq-server

3、启用各节点RabbitMQ Web管理插件,监听15672端口

# rabbitmq-plugins list
# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect. # systemctl start rabbitmq-server
# netstat -tnlp

4、用浏览器访问

http://172.16.100.186:15672/
默认账号和密码都是guest;

5、将master节点的cookie文件复制到各slave节点

# scp /var/lib/rabbitmq/.erlang.cookie node2:/var/lib/rabbitmq/
# scp /var/lib/rabbitmq/.erlang.cookie node3:/var/lib/rabbitmq/

6、停止slave上的app,并将slave节点加入到集群

# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@node1
# rabbitmqctl start_app

7、将各slave加入集群后,查看集群状态

# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbitmq01' ...
[{nodes,[{disc,['rabbit@rabbitmq01','rabbit@rabbitmq02',
'rabbit@rabbitmq03']}]},
{running_nodes,['rabbit@rabbitmq02','rabbit@rabbitmq03',
'rabbit@rabbitmq01']},
{cluster_name,<<"rabbit@rabbitmq01">>},
{partitions,[]}]
...done.

8、使用haproxy创建LB集群,在haproxy server上单独创建一个配置文件

# vim /etc/rabbitmq.cfg
listen rabbitmq :5672
mode tcp
balance roundrobin
server rabbit01 172.50.0.64:5672 check inter 5000
server rabbit02 172.50.0.65:5672 check inter 5000
server rabbit03 172.50.0.66:5672 check inter 5000 listen rabbitmqui :15672
mode http
balance roundrobin
server rabbit01 172.50.0.64:15672 check inter 5000
server rabbit02 172.50.0.65:15672 check inter 5000
server rabbit03 172.50.0.66:15672 check inter 5000 # haproxy -f /etc/rabbitmq.cfg

9、用浏览器访问haproxy server的地址和端口

http://172.16.100.186:15672/

RabbitMQ集群搭建

上一篇:利用Python爬去囧网福利(多线程、urllib、request)


下一篇:【python cookbook】【字符串与文本】15.给字符串中的变量名做插值处理