RabbitMQ集群(非常詳細(xì)總結(jié))
RabbitMQ安裝:
## 1. 首先在Linux上進(jìn)行一些軟件的準(zhǔn)備工作,yum下來一些基礎(chǔ)的軟件包yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz## 2. 下載RabbitMQ所需軟件包(本神在這里使用的是 RabbitMQ3.6.5 穩(wěn)定版本)wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpmwget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpmwget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm## 3. 安裝服務(wù)命令rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpmrpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpmrpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm## 4. 修改用戶登錄與連接心跳檢測(cè),注意修改vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app修改點(diǎn)1:loopback_users 中的 <<"guest">>,把<< >>去掉只保留guest (用于用戶登錄)修改點(diǎn)2:heartbeat 為10(用于心跳連接)## 5. 安裝管理插件## 5.1 首先啟動(dòng)服務(wù)(后面 | 包含了停止、查看狀態(tài)以及重啟的命令)/etc/init.d/rabbitmq-server start | stop | status | restart## 5.2 查看服務(wù)有沒有啟動(dòng):lsof -i:5672 (5672是Rabbit的默認(rèn)端口)rabbitmq-plugins enable rabbitmq_management## 5.3 可查看管理端口有沒有啟動(dòng):lsof -i:15672 或者 netstat -tnlp | grep 15672## 6. 一切OK 我們?cè)L問地址,輸入用戶名密碼均為 guest## http://你的ip地址:15672/## 7. 如果一切順利,那么到此為止,我們的環(huán)境已經(jīng)安裝完啦
訪問管理臺(tái):http://ip地址:15672/ 來訪問圖形界面?默認(rèn)用戶名均為guest

單機(jī)訪問效果成功
RabbitMQ鏡像集群
會(huì)展示如何配置一個(gè)RabbitMQ集群,要保證三臺(tái)服務(wù)器的IP能通
第一步 集群搭建配置
配置/etc/hosts文件,保證集群節(jié)點(diǎn)之間的通信:配置為 ip 名稱。配置完成之后刷新hosts文件(刷新不成功,建議重啟服務(wù)器)
#配置/etc/hosts文件vim /etc/hosts#填入內(nèi)容:192.168.2.128 A192.168.2.129 B192.168.2.130 C#配置完成之后刷新hosts文件/etc/init.d/network?restart
第二步 新建文件,指定節(jié)點(diǎn)名
#指定節(jié)點(diǎn)名/etc/rabbitmq/rabbitmq-env.conf#填入內(nèi)容:(節(jié)點(diǎn)名 和etc/hosts 配置名稱一致 如 A,B,C)NODENAME=rabbit@節(jié)點(diǎn)名
第三步 保持 .erlang.cookie一致
保持A,B,C服務(wù)器中的.erlang.cookie相同,.erlang.cookie?存在于?/var/lib/rabbitmq/.erlang.cookie我們這里A為主服務(wù)(注意:如果mq沒有啟動(dòng)過是沒有erlang.cookie的)
#scp 拷貝 xxxx為ip 地址 或者 hosts中的B,Cscp -p /var/lib/rabbitmq/.erlang.cookie root@xxxx:/var/lib/rabbitmq/[root@A ~]# scp /var/lib/rabbitmq/.erlang.cookie root@B:/var/lib/rabbitmq[root@A?~]#?scp?/var/lib/rabbitmq/.erlang.cookie?root@C:/var/lib/rabbitmq
第四步 運(yùn)行各個(gè)RabbitMQ節(jié)點(diǎn)
后臺(tái)啟動(dòng)各個(gè)節(jié)點(diǎn)(/usr/lib/rabbitmq/bin/)
[][]
第五步 RabbitMQ節(jié)點(diǎn)建立集群
B加入到集群rabbit@A
[root@B ~]#rabbitmqctl stop_app[root@B ~]#rabbitmqctl join_cluster rabbit@A[root@B?~]#rabbitmqctl?start_app
C加入到集群rabbit@A
[root@C ~]#rabbitmqctl stop_app[root@C ~]#rabbitmqctl join_cluster rabbit@A[root@C?~]#rabbitmqctl?start_app
A:不用加入自己
第六步 查看集群狀態(tài)
我們可以在任意一臺(tái)機(jī)器上查看集群狀態(tài)
[root@A ~]# rabbitmqctl cluster_statusCluster status of node rabbit@A[{nodes,[{disc,[rabbit@A,rabbit@B,rabbit@C]}]},{running_nodes,[rabbit@C,rabbit@B,rabbit@A]},{cluster_name,<<"rabbit@A"},{partitions,[]},{alarms,[{rabbit@C,[]},{rabbit@B,[]},{rabbit@A,[]}]}]
已經(jīng)建立集群成功了(注意我這里只有二臺(tái)機(jī)器)
RabbtiMQ其他操作
添加一個(gè)用戶
rabbitmqctl add_user 用戶名 用戶密碼給用戶賦角色
rabbitmqctl set_user_tags 用戶名 角色名給用戶賦權(quán)限
rabbitmqctl set_permissions -p “/” 用戶名 “." ".” “.*”刪除用戶
rabbitmqctl delete_user 用戶名查看用戶
rabbitmqctl list_users
注: 默認(rèn)用戶為guest guest,可新建用戶給文件賦權(quán)限:
chmod 777 /文件夾名字/文件名字或者*
如: chmod 777 /var/lib/rabbitmq/.erlang.cookie關(guān)閉要移除的節(jié)點(diǎn)A
rabbitmqctl stop_app在其他節(jié)點(diǎn)B移除節(jié)點(diǎn)A
rabbitmqctl forget_cluster_node rabbit@C
操作案例
[][][][][][]
來源:https://blog.csdn.net/weixin_44519874/article/details/112850653
