Rabbitmq群集部署

网友投稿 234 2022-11-09

Rabbitmq群集部署

一、部署Rabbitmq集群

Rabbitmq集群大概分为两种方式:1、普通模式:默认的集群模式,消息的尸体只存在一个节点上;2、镜像模式:把需要的队列做成镜像,存在于多个节点。ha-mode: all:列队到所有节点; exatly:随机镜像到其他节点上; nodes:镜像到指定节点上。集群节点模式:1、内存节点:工作在内存上;2、磁盘节点:工作在磁盘上;例外:内存节点和磁盘节点共同存在,提高访问速度的同时增加数据持久化。

[root@localhost ~]# mkdir rabbitmq [root@localhost ~]# cd rabbitmq/ [root@localhost rabbitmq]# ls erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm #安装rabbitmq [root@localhost rabbitmq]# yum -y localinstall erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm [root@localhost rabbitmq]# chkconfig rabbitmq-server on [root@localhost rabbitmq]# /etc/init.d/rabbitmq-server start Starting rabbitmq-server (via systemctl): [ OK ]

3、配置主机192.168.171.134

[root@localhost ~]# tail -4 /etc/hosts #配置本地解析(主机名可自定义) 192.168.171.134 rabbitmq01 192.168.171.135 rabbitmq02 192.168.171.140 rabbitmq03 192.168.171.143 rabbitmq04 #将hosts文件复制到其他节点 [root@localhost ~]# scp /etc/hosts root@192.168.171.135:/etc/ [root@localhost ~]# scp /etc/hosts root@192.168.171.140:/etc/ [root@localhost ~]# scp /etc/hosts root@192.168.171.143:/etc/ #将rabbitmq01的cookie节点信息复制到其他需要加入群集的节点 #部署群集的时候需要节点cookie信息一致 [root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.171.135:/var/lib/rabbitmq/ [root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.171.140:/var/lib/rabbitmq/ [root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.171.143:/var/lib/rabbitmq/

4、重启所有要加入群集的节点服务器在所有要加入群集的服务器上执行以下命令进行重启(包括rabbitmq01)

[root@localhost ~]# init 6

若重启的时后被卡在某个界面,那么需要强制重启

[root@rabbitmq01 ~]# ps -ef | grep rabbitmq # 确定已经启动,可以看到重启后主机名已经变更为hosts解析中所配置的

5、在rabbitmq01上配置群集

[root@rabbitmq01 ~]# rabbitmqctl stop_app # 停止节点服务 Stopping node rabbit@rabbitmq01 ... [root@rabbitmq01 ~]# rabbitmqctl reset # 重置节点 Resetting node rabbit@rabbitmq01 ... [root@rabbitmq01 ~]# rabbitmqctl start_app # 启动节点服务 Starting node rabbit@rabbitmq01 ... # 复制所返回的节点名称

6、配置rabbitmq02、03加入rabbitmq01群集

[root@rabbitmq02 ~]# rabbitmqctl stop_app [root@rabbitmq02 ~]# rabbitmqctl reset [root@rabbitmq02 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq01 #以内存方式加入群集,后面是复制的rabbitmq01的节点名 [root@rabbitmq02 ~]# rabbitmqctl start_app [root@rabbitmq02 ~]# rabbitmq-plugins enable rabbitmq_management # 开启网页插件

7、在rabbitmq01上查看节点状态

[root@rabbitmq01 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@rabbitmq01 ... [{nodes,[{disc,[rabbit@rabbitmq01]}, {ram,[rabbit@rabbitmq03,rabbit@rabbitmq02]}]}, {running_nodes,[rabbit@rabbitmq03,rabbit@rabbitmq02,rabbit@rabbitmq01]}, {cluster_name,<<"rabbit@rabbitmq01">>}, {partitions,[]}, {alarms,[{rabbit@rabbitmq03,[]}, {rabbit@rabbitmq02,[]}, {rabbit@rabbitmq01,[]}]}] # rabbit01工作模式为磁盘节点;rabbit02和03为内存节点模式 # running_nodes:正在运行的节点 # cluster_name:节点名称 # alarms:发生问题时rabbit01、02、03会进行报警

8、在rabbitmq创建管理用户并加入管理组由于节点被reset重置了,所以用户也需要重新创建

[root@rabbitmq01 ~]# rabbitmqctl add_user admin 123.com Creating user "admin" ... [root@rabbitmq01 ~]# rabbitmqctl set_user_tags admin administrator Setting tags for user "admin" to [administrator] ...

9、登录web界面访问群集内任意节点的IP+15672端口都可以进行登录:

#在节点192.168.171.143服务器上安装rabbitmq并配置 [root@localhost src]# yum -y localinstall erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm [root@localhost src]# chkconfig rabbitmq-server on [root@localhost src]# /etc/init.d/rabbitmq-server start #将群集中的cookie信息复制到本地 [root@localhost src]# scp root@rabbitmq01:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/ [root@localhost src]# init 6 #重启本机 #加入群集 [root@rabbitmq04 ~]# rabbitmqctl stop_app [root@rabbitmq04 ~]# rabbitmqctl reset [root@rabbitmq04 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq01 #以内存运行的方式加入群集,若要以磁盘的方式加入,省略“--ram”选项即可 [root@rabbitmq04 ~]# rabbitmqctl start_app #开启web管理页面 [root@rabbitmq04 ~]# rabbitmq-plugins enable rabbitmq_management

[root@rabbitmq04 ~]# rabbitmqctl stop_app

2)回到主节点rabbitmq01上删除节点

[root@rabbitmq04 ~]# rabbitmqctl -n rabbit@rabbitmq01 forget_cluster_node rabbit@rabbitmq04 # -n:指定节点名称 # forget_cluster_node:后面跟要删除的节点名称

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大联大世平集团推出Hi-Fi级Type-C & Lightning 数字耳机解决方案
下一篇:Java的内部类总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~