RabbitMQ集群

对于 SLE 12 SP2,请以根用户 root 运行下面命令:
zypper addrepo https://download.opensuse.org/repositories/devel:languages:erlang:Factory/SLE_12_SP2/devel:languages:erlang:Factory.repo
zypper refresh
zypper install erlang

修改hosts文件
172.18.8.157live-mq-01
172.18.8.158live-mq-02
172.18.8.161live-mq-03


第一步:上传erlang、rabbitmq安装包
第二步:安装erlang
rpm -ivh *rpm
第三步:安装rabbitmq,root用户
tar xf rabbitmq-server-generic-unix-3.7.18.tar.xz
mv rabbitmq_server-3.7.18 /data/application
cd /data/application
ln -s rabbitmq_server-3.7.18 rabbitmq_server
chown -R wasadmin.wasgroup rabbitmq_server rabbitmq_server-3.7.18

第四步:修改环境变量,wasadmin用户
vim ~/.profile
export RABBITMQ_HOME=/data/application/rabbitmq_server
export PATH=$PATH:$RABBITMQ_HOME/sbin

第五步:修改系统文件描述符,root用户
ulimit -n
echo 6553560 > /proc/sys/fs/file-max
echo ‘fs.file-max = 6553560‘ >> /etc/sysctl.conf

ulimit -n 65535
cat >> /etc/security/limits.conf << end
* soft nofile 65535
* hard nofile 65535
end
tail /etc/security/limits.conf

 

同步erlang.cookie文件,通过Erlang的分布式特性(通过magiccookie认证节点)进行RabbitMQ集群,各RabbitMQ服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。
chmod 600 .erlang.cookie
root@live-mq-01:~# vim /home/wasadmin/.erlang.cookie
WJLPTHZIMFLJRTOGPYNA
root@live-mq-02:~# vim /home/wasadmin/.erlang.cookie
WJLPTHZIMFLJRTOGPYNA
root@live-mq-03:~# vim /home/wasadmin/.erlang.cookie
WJLPTHZIMFLJRTOGPYNA
chmod 400 .erlang.cookie

 

以守护程序的方式在后台运行,每个节点都需要
启动服务:rabbitmq-server -detached
命令补充:
关闭应用:rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
关闭服务:rabbitmqctl stop 或 rabbitmqctl shutdown
查看状态:rabbitmqctl status

开启manager,每个节点都需要
rabbitmq-plugins enable rabbitmq_management


在live-mq-01节点上查看集群信息,此时集群中应只有自己。
root@live-mq-01:~# rabbitmqctl cluster_status
Cluster status of node‘rabbit@live-mq-01‘...
[
{nodes,[{disc,[‘rabbit@live-mq-01‘]}]},
#集群中的节点,disc表示为磁盘模式,ram表示为内存模式
{running_nodes,[‘rabbit@live-mq-01‘]},
#正在运行的集群节点
{cluster_name,<<"rabbit@live-mq-01">>},
#集群的名称
{partitions,[]}
]

下面将live-mq-01、live-mq-02、live-mq-03组成集群:(集群至少需要有1个disk节点)
mq02以disk类型加入mq01节点:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq01
rabbitmqctl start_app
mq03以ram类型加入mq01节点:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq01 --ram
rabbitmqctl start_app
如果需要把mq02类型改为ram:
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app

允许远程用户(admin)访问
rabbitmqctl add_user admin admin@2021
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl list_permissions -p /

删除默认用户guest
rabbitmqctl delete_user guest


设置镜像队列策略,开启镜像高可用模式
rabbitmqctl set_policy ha-all "^" ‘{"ha-mode":"all"}‘
查看策略
rabbitmqctl list_policies

RabbitMQ退出集群,如果mq03要退出集群:
mq03:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
集群主节点:
rabbitmqctl forget_cluster_node rabbit@mq03

集群如何重启?
一个disk节点:先启动disk节点再启动ram节点
多个disk节点:先启动最后关闭的disk节点,启动其余disk节点,再启动ram节点

RabbitMQ 入门系列(4)
https://blog.csdn.net/wohu1104/article/details/91469537

RabbitMQ集群

上一篇:vue项目踩坑


下一篇:How to choose a decent auto key programmer for Chrysler?