您的位置:首页 > 其它

RabbitMQ cluster

2017-05-11 18:53 323 查看

环境准备

主机版本Linux control-ha-3 4.4.0-45-generic #66-Ubuntu SMP Wed Oct19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/LinuxErlang版本号Erlang/OTP 18 [erts-7.3] [source] [64-bit][async-threads:10] [hipe] [kernel-poll:false]Eshell V7.3 (abortwith ^G)rabbitmq版本Version: 3.5.7-1Depends: adduser, erlang-nox (>= 1:13.b.3) | esl-erlang,logrotate, init-system-helpers (>= 1.18~) 安装erlang # apt-get installerlang

常用命令

1 查看所有队列信息# rabbitmqctl list_queues2 关闭应用# rabbitmqctl stop_app3 启动应用,和上述关闭命令配合使用,达到清空队列的目的# rabbitmqctl start_app 4 清除所有队列# rabbitmqctl reset5 更多用法及参数,可以执行如下命令查看# rabbitmqctl6 首先关闭# rabbitmqctlstop_app7 还原: # rabbitmqctlreset8 启动:# rabbitmqctlstart_app9 添加用户: # rabbitmqctladd_user dftc dftcp@ss10 设置权限:# rabbitmqctlset_permissions -p / dftc ".*" ".*" ".*"11 查看用户: # rabbitmqctllist_users

control1, control 2, control 3以及其相关配置

搭载了RabbitMQ服务的Ubuntu服务器。1. Control1具体网络配置如下:
Ip address192.168.163.141
net mask255.255.255.0
gateway 192.168.163.2
Dns114.114.114.114
2. Control2具体网络配置如下:
Ip address192.168.163.142
net mask255.255.255.0
gateway 192.168.163.2
Dns114.114.114.114
3. Control3具体网络配置如下:
Ip address192.168.163.143
net mask255.255.255.0
gateway 192.168.163.2
Dns114.114.114.114

RabbitMQ单节点配置流程

1. 配置3台台可以接入公网的CentOS,然后在各机器中按序执行一下命令:# apt-getinstall erlang -y # wgethttps://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_5/rabbitmq-server_3.6.5-1_all.deb# rabbitmq-server# rabbitmq-pluginsenable rabbitmq_management 2. 在每个节点配置/etc/hosts中最后增加下面内容:#vi /etc/hosts192.168.163.141 control1192.168.163.142 control2192.168.163.143 control3 输入erl确认erlang已经正确安装当出现以上信息时表示安装完成。然后输入’halt().’退出即可。然后在配置Erlang环境变量,vi /etc/profile文件,增加下面的环境变量:#seterlang environmentexportPATH=$PATH:/opt/erlang/bin 3. 重启三台机器#reboot4. 构建起erlang的集群环境Rabbitmq的集群是依赖于erlang的集群来工作的。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,所以必须保证各节点cookie保持一致,否则节点之间就无法通信。 使用以下命令将Control1中的/var/lib/rabbitmq/.erlang.cookie 复制到其他节点。在Control1节点运行以下命令:# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.163.142: /var/lib/rabbitmq/.erlang.cookie # scp /var/lib/rabbitmq/.erlang.cookie root@192.168.163.143: /var/lib/rabbitmq/.erlang.cookie 由于文件是400的权限,所以在Control2以及Control3节点运行以下命令:保证权限属主属组完全一致# chmod 400/var/lib/rabbitmq/.erlang.cookie # chown rabbitmq.rabbitmq/var/lib/rabbitmq/.erlang.cookie 完成后运行rabbitmqctl stop 然后 rabbitmq-server 重启服务# rabbitmqctl stop # /sbin/service rabbitmq-server restart 在Control1节点增加用户,并且为用户赋予权限# rabbitmqctl add_user dftc dftcp@ss(测试环境使用queuep@ss)# rabbitmqctl set_user_tags dftc administrator# rabbitmqctl set_permissions -p / dftc '.*''.*' '.*' 通过http://192.168.163.141:15672 用户名为:dftc 密码为:dftcp@ss(测试环境使用queuep@ss)连入第一台配置成功的RabbitMQ服务器。其他节点暂不配置 Iptables打开对应端口,尤其注意4369和25672,没有打开的时候,添加集群会报错并提示打开#rabbitmq cluster-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT

RabbitMQ集群搭建

1. RabbitMQ相关的配置使用 -detached 参数,在各节点中运行以下命令:# rabbitmqctl stop# rabbitmq-server –detached 组成集群,在control2与control3中分别运行以下命令:# rabbitmqctl stop_app # rabbitmqctl join_cluster --ramrabbit@rabbitmq-control1(跟据实际主机名确定)# rabbitmqctl start_app 可选步骤:在已经可用的Control1的web页面,配置

注:红框内的内容在没配置之前是没有的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cluster rabbitmq