Centos7.3 RabbitMQ分布式集群搭建示例
本文介绍了Centos7.3RabbitMQ分布式集群搭建示例,分享给大家,具体如下:
注意事项
centos7.x关闭firewall
三台机器:
172.17.250.97rabbiMQ01 172.17.250.98rabbiMQ03 172.17.250.99rabbiMQ02
配置hosts
172.17.250.97fz-rabbitMQ01 172.17.250.99fz-rabbitMQ02 172.17.250.98fz-rabbitMQ03
$systemctlstopfirewalld.service#停止firewall
不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理MQ
安装安装iptables防火墙
yuminstalliptables-services
添加配置
iptables-IINPUT-ptcp--dport5672-jACCEPT iptables-IINPUT-ptcp--dport15672-jACCEPT
保存配置
serviceiptablessave
重启
systemctlrestartiptables.service
设置开机自启动
systemctlenableiptables.service
安装
安装Erlang
RabbitMQ安装需要依赖Erlang环境
$cd/usr/local/src $wgethttp://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm $yuminstallerlang-19.0.4-1.el7.centos.x86_64.rpm-y
安装RabbitMQ
$cd/usr/local/src $wgethttp://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm $yuminstallrabbitmq-server-3.6.10-1.el7.noarch.rpm-y
仅仅rabbitMQ01运行:
rabbitmq-server-detached
之后运行
rabbitmqctlstatus
查看rabbitmq是否正常启动。
创建集群:
首先搞个密钥认证:
[root@fz-rabbitMQ01src]#ssh-keygen [root@fz-rabbitMQ01src]#ssh-copy-id-pXXXXX-i~/.ssh/id_rsa.pub[emailprotected] [root@fz-rabbitMQ01src]#ssh-copy-id-pXXXXX-i~/.ssh/id_rsa.pub[emailprotected]
读取rabbitMQ01节点的cookie,并复制到其他节点(节点之间通过cookie确定相互是否可通信)。cookie存放在/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie中。
[root@fz-rabbitMQ01src]#scp-PXXXXX/var/lib/rabbitmq/.erlang.cookie172.17.250.99:/var/lib/rabbitmq /etc/bashrc:行94:soruce:未找到命令 .erlang.cookie100%200.0KB/s00:00 [root@fz-rabbitMQ01src]#scp-PXXXXX/var/lib/rabbitmq/.erlang.cookie172.17.250.98:/var/lib/rabbitmq /etc/bashrc:行94:soruce:未找到命令 .erlang.cookie
逐个启动节点
rabbitmq-server-detached
建立集群
分别在rabbitMQ02和rabbitMQ03上面执行即可
rabbitmqctlstop_app rabbitmqctlreset rabbitmqctljoin_clusterrabbit@fz-rabbitMQ01 rabbitmqctlstart_app
最后通过rabbitmqctlcluster_status查看集群的状态信息:
[root@fz-rabbitMQ01src]#rabbitmqctlcluster_status Clusterstatusofnode'rabbit@fz-rabbitMQ01' [{nodes,[{disc,['rabbit@fz-rabbitMQ01','rabbit@fz-rabbitMQ02', 'rabbit@fz-rabbitMQ03']}]}, {running_nodes,['rabbit@fz-rabbitMQ03','rabbit@fz-rabbitMQ02', 'rabbit@fz-rabbitMQ01']}, {cluster_name,<<"[emailprotected]">>}, {partitions,[]}, {alarms,[{'rabbit@fz-rabbitMQ03',[]}, {'rabbit@fz-rabbitMQ02',[]}, {'rabbit@fz-rabbitMQ01',[]}]}]
在访问web(http://xxx.xxx.xxx.xxx:15672)时,如果在Overview中的Nodes部分看到“Nodestatisticsnotavailable”的信息,说明在该节点上web管理插件还未启用。
3个节点都需要运行:
[root@fz-rabbitMQ01src]#rabbitmq-pluginsenablerabbitmq_management Thefollowingpluginshavebeenenabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applyingpluginconfigurationtorabbit@fz-rabbitMQ01...started6plugins.
遇到的问题
Error:unabletoconnecttonode'[emailprotected]':nodedown
解决方案:执行如下两条命令:
#/sbin/servicerabbitmq-serverstop #/sbin/servicerabbitmq-serverstart
然后再次执行:即可
rabbitmqctlstop_app rabbitmqctlreset rabbitmqctljoin_clusterrabbit@fz-rabbitMQ01 rabbitmqctlstart_app
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。