0
点赞
收藏
分享

微信扫一扫

Linux下的Rabbitmq镜像集群模式搭建

RockYoungTalk 2022-01-17 阅读 67

Rabbitmq镜像集群模式搭建

一. 搭建第一台rabbitmq服务

1. 在服务器上新建文件夹,拷入安装包(见附件)

自行下载rabbitmq,erlang,socat
地址:
http://www.dest-unreach.org/socat/
https://www.erlang.org/downloads
https://www.rabbitmq.com/install-windows.html
可参照我的版本

2. 分别赋权

3. 分别执行安装命令

4. 启动rabbitmq

5. 配置rabbitmq管理账户

6. 防火墙打开5672/15672端口 (rabbitmq服务默认端口为15672)

7. 登录前台界面

管理链接为:http://localhost:15672,登陆账户密码为设置的 admin admin
登陆管理端,并打开访问权限。
登陆后台
查看用户权限,默认状态下权限是不允许访问(此时程序访问5672端口是连接被拒绝)。
点击用户名,进入用户页面,直接点击设置权限。此时刷新页面回到Users页面,权限变成可访问

二. RabbitMQ集群部署

1 按照前面的方式在想要集群的多台主机上安装好RabbitMQ实例

2 更改主机/etc/hosts

加入主机节点。 如下所示二台主机均在/etc/hosts中添加,然后二台主机相互之间可以ping通rabbit-node
添加内容:

3 多台主机的erlang.cookie设置为同一个

使用rpm包安装的rabbitmq, erlang.cookie的位置在/var/lib/rabbitmq/.erlang.cookie。具体操作流程如下:如果以rabbit-node1的erlang.cookie作为集群的erlang.cookie.
3.1在rabbit-node1的主机上给erlang.cookie赋权

3.2在rabbit-node2主机上执行

3.3查看erlang.cookie是否统一,如果已统一,再执行如下命令,恢复原本权限(一定要恢复)

4 配置集群

4.1 在2台主机上停止当前Rabbitmq-server, 分别执行,如有问题,可以使用ps查看rabbitmq进程号,在kill -9 杀掉。

4.2 然后执行,开启服务

分别在两台主机上执行rabbitmqctl cluster_status查看集群状况,此时只有本机的记录。打印输出如下:

 Cluster status of node rabbit@localhost ...
 [{nodes,[{disc,[rabbit@localhost]}]}, 
 {running_nodes,[rabbit@localhost]}, 
 {cluster_name,<<"rabbit@localhost">>},  {partitions,[]}, 
 {alarms,[{rabbit@localhost,[]}]}]`

5 将rabbit-node1,rabbit-node2组成集群。

5.1 两台服务器均修改hostname与/etc/hosts中配置的一样,不然加入到集群会有问题,参见2 的配置

[root@localhost ~]# vi /etc/hostname
rabbit-node1

5.2 修改网络配置/etc/sysconfig/network,如下:

[root@rabbit-node1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rabbit-node2
[root@rabbit-node1 ~]# service network restart

5.3 重启服务器使host修改生效,查询hostname是否已修改

[root@rabbit-node1 ~]# hostname
rabbit-node1

5.4 启动rabbitmq服务

5.5在二台主机上分别执行rabbitmqctl cluster_status查看集群状态,结果如下:

Cluster status of node rabbit@rabbit-node1 ...
[{nodes,[{disc,['rabbit@rabbit-node1','rabbit@rabbit-node2']}]},
 {running_nodes,['rabbit@rabbit-node2','rabbit@rabbit-node1']},
 {cluster_name,<<"rabbit@rabbit-node1">>},
 {partitions,[]},
 {alarms,[{'rabbit@rabbit-node2',[]},{'rabbit@rabbit-node1',[]}]}]

表示集群创建成功,从任意一个节点的rabbitmq web管理端也可以看到各个节点状态。

6 搭建rabbitmq的镜像高可用模式集群

在任意一个节点上执行如下命令:

参数意思为:
ha-all:为策略名称。
:为匹配符,只有一个代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如[“3rabbit@F”,“rabbit@G”]这样指定为F与G这2台机器。)。
查看策略:rabbitmqctl list_policies -p /

举报

相关推荐

0 条评论