CentOS7 RabbitMQ集群安装手册

1、安装前规划

 

CentOS7内核版本

3.10.0-693.2.2.el7.x86_64

 

2、对应主机host地址&节点角色

三台主机hosts文件要保持一致

IP

主机名

作用

111.111.111.111

server111-111

主节点

111.111.111.112

server111-112

节点

111.111.111.113

server111-113

从节点

  1. 软件安装版本

Erlang:19.0.4

RabbitMQ:3.6.14

 

二、正式安装

备注:

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

 

1安装依赖组件erlang

1

2

3

4

5

6

7

8

9

下载erlang 

[root@server111-111 opt]# wget https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

安装erlang:

[root@server111-111 opt]# rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm

 

安装日志如下:

准备中...                          ################################# [100%]

正在升级/安装...

   1:erlang-19.0.4-1.el7              ################################# [100%]

2安装rabbitMQ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

rabbitmq安装文件为:rabbitmq-server-3.6.14-1.el7.noarch.zip

 

下载、解压rabbitmq 

[root@server111-111 opt]# wget https://dl-download.csdn.net/down11/20180322/1a5b9211637dff70a41fde0712a6a56f.zip?response-content-disposition=attachment%3Bfilename%2A%3D%22utf8%27%27rabbitmq-server-3.6.14-1.el7.noarch.zip%22&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1559203882&Signature=S8xmXED0X7QqHbPYiOoiljLsvcw%3D&user=liuwei0376&sourceid=10303202&sourcescore=0&isvip=0

如果过期无法下载,请自行去下载渠道(如csdn)查找。

[root@server111-111 opt]# unzip /opt/rabbitmq-server-3.6.14-1.el7.noarch.zip

 

安装rabbitmq:

[root@server111-111 opt]# rpm -ivh rabbitmq-server-3.6.14-1.el7.noarch.rpm

错误:依赖检测失败:

        socat 被 rabbitmq-server-3.6.14-1.el7.noarch 需要

解决报错:

[root@server111-111 opt]# yum install socat -y

[root@server111-111 opt]# rpm -ivh rabbitmq-server-3.6.14-1.el7.noarch.rpm

准备中...                          ################################# [100%]

正在升级/安装...

   1:rabbitmq-server-3.6.14-1.el7     ################################# [100%]

3启动RabbitMQ服务和设置开机自启

1

2

3

4

5

6

service rabbitmq-server start

service rabbitmq-server status

 

#CentOS7推荐使用如下方法:

systemctl start rabbitmq-server.service

systemctl status rabbitmq-server.service

 

设置开机自启动:

systemctl enable rabbitmq-server.service

  1. 安装插件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

rabbitmq-plugins list      #查看插件列表

 

web管理插件

启用管理组件,此时Web控制台方可使用:

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.14/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安装后,它将存放在/var/lib/rabbitmq中

2、复制分发cookie内容


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

打开文件然后需要先把其中的一台服务器的.erlang.cookie中的内容复制到别的机器上,最好是复制内容,因为文件权限不对的话会出现问题,在最后退出保存的时候使用wq!用!来进行强制保存即可.

 

3、复制完成重启节点服务

1

2

systemctl restart rabbitmq-server.service

systemctl status rabbitmq-server.service

4、添加节点到集群

将rabbit@server111-111作为集群主节点,在节点111-112和节点111-113上面分别执行如下命令,以加入集群中.

1

2

3

4

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@server111-111

rabbitmqctl start_app

5、检查集群状态

三节点上,分别使用如下命令检查集群状态:

1

rabbitmqctl cluster_status

6账号管理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

添加账号:

rabbitmqctl add_user admin admin

 

添加 权限tag

rabbitmqctl set_user_tags admin administrator

 

删除用户(guest访客用户)

[root@server111-111 rabbitmq]# rabbitmqctl delete_user guest

 

修改用户密码语法

rabbitmqctl  change_password  ${USERNAME}  ${NEWPASSWORD}

[root@server111-111 ~]# rabbitmqctl  change_password  admin aidwdata.rabbitmq

 

查看当前用户列表

rabbitmqctl  list_users

Listing users

admin   [administrator]

7WEB方式管控集群

Web控制台地址:111.111.111.111:15672

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

 

8、一些运维操作

【注意】:

正常安装后一般无需执行如下操作,如下操作将可能初始化并销毁已有数据,部分操作将改变数据存储类型,请谨慎操作!

 

8.1、从集群中移除节点:

1

2

3

4

5

6

[root@server111-112 rabbitmq]# rabbitmqctl stop_app

Stopping rabbit application on node 'rabbit@server111-112'

[root@server111-112 rabbitmq]# rabbitmqctl reset

Resetting node 'rabbit@server111-112'

[root@server111-112 rabbitmq]#  rabbitmqctl start_app

Starting node 'rabbit@v01-app-rabbitmq02'

 

8.2、加入集群时指定节点类型

1

2

3

4

5

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@server111-111

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

rabbitmqctl start_app

 

【注意】:

该步骤如果执行失败,请在主节点上执行如下操作恢复:

rabbitmqctl forget_cluster_node rabbit@server111-112

 

8.3、修改节点类型:

1

2

3

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type disc

rabbitmqctl start_app

8.4、日志文件查看位置:

1

2

/var/log/rabbitmq/rabbit@server111-111.log

/var/log/rabbitmq/rabbit@server111-111-sasl.log  

 

8.5、集群镜像模式HA配置

     上面配置RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制,虽然该模式解决一部分节点压力,但队列节点宕机直接导致该队列无法使用,只能等待重启,所以要想在队列节点宕机或故障也能正常使用,就要复制队列内容到集群里的每个节点,需要创建镜像队列。

使用镜像模式解决复制的问题,从而提高可用性.

使用Rabbit镜像功能,需要基于rabbitmq策略来实现,策略是用来控制和修改群集范围的某个vhost队列行为和Exchange行为的。

在集群中执行如下指令,所有队列都执行镜像模式:

# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值