Centos7 rabbitMQ集群配置

CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64

一、对应主机host地址(三台主机host文件要保持一致)

192.21.11.182 mq01

192.21.11.183 mq02

192.21.11.184 mq03

二、3台主机都安装相同的软件:

1.erlang安装: 

下载地址:https://www.rabbitmq.com/releases/erlang/

# wget http://www.rabbitmq.com/releases/erlang/erlang-19.0-1.el7.centos.x86_64.rpm

# rpm -ivh erlang-19.0-1.el7.centos.x86_64.rpm

2.rabbitMQ安装:

下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/
#wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

安装依赖:

yum install tk -y

yum install tcl

rpm -ivh  tcl-8.5.13-8.el7.x86_64.rpm

rpm -ivh  unixODBC-2.3.1-11.el7.x86_64.rpm

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

# rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm

#CentOS7:

systemctl start rabbitmq-server.service

systemctl enable rabbitmq-server.service

4.安装管理插件:

web管理插件

rabbitmq-plugins list      #查看插件列表

rabbitmq-plugins enable rabbitmq_management

日志跟踪插件

rabbitmq-plugins enable rabbitmq_tracing  #rabbitmq启用trace插件

rabbitmqctl trace_on      #打开trace的开关

rabbitmqctl trace_on -p test #打开trace的开关(test为需要日志追踪的vhost)

rabbitmqctl trace_off     #关闭trace的开关

安装rabbitmq_delayed_message_exchange(延时队列)

默认插件目录:

cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.12/plugins

wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez

 

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

The following plugins have been enabled:

rabbitmq_delayed_message_exchange

 

Applying plugin configuration to v01-app-rabbit@localhost... started 1 plugin.

3台上面的rabbitmq都已安装完成,并且启动正常,现在开始配置集群服务。

三、普通集群配置

1.说明:

Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群镜像。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在 $home/.erlang.cookie 中,我的是用rpm安装的,所以.erlang.cookie就放在/var/lib/rabbitmq中

2.复制cookie内容
erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每个节点上要保持相同的.erlang.cookie文件,同时保证文件的权限是400,不然节点之间就无法通信。

主节点:

#cat /var/lib/rabbitmq/.erlang.cookie

 

3个节点都执行

chmod 700 /var/lib/rabbitmq/.erlang.cookie

echo -n "HGPVKPOZIGFCNKZHHLPE" > /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookie

ps -ef | grep ^rabbitmq | awk '{print $2}' | xargs kill -9

3.erlang.cookie复制完成后,逐个重启节点服务:

systemctl restart rabbitmq-server.service

systemctl status rabbitmq-server.service

4.添加到集群:

将mq01作为集群主节点,在节点mq02和节点mq03上面分别执行如下命令,以加入集群中.

[root@mq02 opt]# rabbitmqctl stop_app

Stopping node rabbit@mq02 ...

[root@mq02 opt]# rabbitmqctl reset

Resetting node rabbit@mq02 ...

[root@mq02 opt]# rabbitmqctl join_cluster rabbit@mq01

Clustering node rabbit@mq02 with rabbit@mq01 ...

[root@mq02 opt]# rabbitmqctl start_app

Starting node rabbit@mq02 ...

5.3台都查看集群状态

rabbitmqctl cluster_status

[root@mq02 opt]# rabbitmqctl cluster_status

Cluster status of node rabbit@mq02 ...

[{nodes,[{disc,[rabbit@mq01,rabbit@mq02,rabbit@mq03]}]},

 {running_nodes,[rabbit@mq03,rabbit@mq01,rabbit@mq02]},

 {cluster_name,<<"rabbit@mq01">>},

 {partitions,[]},

 {alarms,[{rabbit@mq03,[]},{rabbit@mq01,[]},{rabbit@mq02,[]}]}]

 

6.账号管理

添加账号:

rabbitmqctl add_user admin admin

添加 权限tag

rabbitmqctl set_user_tags admin administrator

删除用户(删除guest用户)

# rabbitmqctl delete_user guest

Deleting user "guest"

修改用户的密码

#rabbitmqctl  change_password  Username  Newpassword

 

# rabbitmqctl  change_password  admin 0GM1aol4z8GeSZY99

Changing password for user "admin"

查看当前用户列表

rabbitmqctl  list_users

Listing users

admin   [administrator]

7.访问WEB地址:10.100.2.10:15672

至此rabbitmq普通集群模式创建完成.

从集群中移除节点:

# rabbitmqctl stop_app

Stopping rabbit application on node 'rabbit@v01-app-rabbitmq02'

# rabbitmqctl reset

Resetting node 'rabbit@v01-app-rabbitmq02'

#  rabbitmqctl start_app

Starting node 'rabbit@v01-app-rabbitmq02'

改变集群节点类型
加入集群时指定节点类型

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@v01-app-rabbitmq01

rabbitmqctl start_app

 

--ram 指定内存节点类型,--disc指定磁盘节点类型

修改节点类型:

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type disc

rabbitmqctl start_app

日志文件:

/var/log/rabbitmq/rabbit@v01-app-rabbitmq01.log

/var/log/rabbitmq/rabbit@v01-app-rabbitmq01-sasl.log 

posted @   moxunjy  阅读(185)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示