ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

rabbitmq 镜像集群部署

2021-07-06 17:32:35  阅读:198  来源: 互联网

标签:rabbitmq rabbitmqctl 集群 data4 data5 镜像 root 节点


环境

centos7,安装基础的包,做好时间同步,关闭防火墙以及selinux,以及主机名解析

192.168.1.62 data4
192.168.1.63 data5
192.168.1.64 data6

版本 rabbitmq-server-3.8.19

安装rabbitmq rpm 源

[root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

安装erlang 源

[root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

[root@data4 ~]# yum install rabbitmq-server

配置启动文件

[root@data4 ~]#  mkdir -pv /data/rabbitmq/{data,logs}

[root@data4 ~]#  chown rabbitmq:rabbitmq /data/rabbitmq/ -R

[root@data4 ~]#  cd /etc/rabbitmq/
```

默认的实例文件,下载或者复制出来,创建 rabbitmq-server.conf

https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq-server.service.example

[root@data4 ~]#  vim  rabbitmq-env.conf

```
RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf

RABBITMQ_MNESIA_BASE=/data/rabbitmq/data

RABBITMQ_LOG_BASE=/data/rabbitmq/logs

RABBITMQ_NODENAME=rabbit@data4

#RABBITMQ_NODE_IP_ADDRESS

#RABBITMQ_NODE_PORT
```


scp  传输到其它两个节点一样的配置,唯一要注意这个RABBITMQ_NODENAME=rabbit@data4,改成对应主机。

```
[root@data4 ~]# systemctl enable --now  rabbitmq-server
[root@data4 ~]# rabbitmq-plugins enable rabbitmq_management
[root@data4 ~]# systemctl restart rabbitmq-server
[root@data4 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
[root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie  root@data5:/var/lib/rabbitmq/
[root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie  root@data6:/var/lib/rabbitmq/
```

将data4作为集群主节点,在节点data5和节点data6上⾯面分别执⾏行行如下命令,以加⼊集群中(--ram 指定内存节点类型,--disc指定磁盘节点类型)

```
[root@data5 ~]# rabbitmqctl stop_app
[root@data5 ~]# rabbitmqctl reset
[root@data5 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点

[root@data6 ~]# rabbitmqctl stop_app
[root@data6 ~]# rabbitmqctl reset
[root@data6 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点
```

查看集群状态

```
[root@data4 ~]# rabbitmqctl cluster_status
[root@data5 ~]# rabbitmqctl cluster_status
[root@data6 ~]# rabbitmqctl cluster_status
```

设置管理账号

```
[root@data4 ~]# rabbitmqctl add_user admin password 
[root@data4 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
[root@data4 ~]# rabbitmqctl set_user_tags admin administrator
```

设置项目账号

aaa 项目账号

```
[root@data4 ~]# rabbitmqctl  add_vhost aaa_project
[root@data4 ~]# rabbitmqctl  add_user aaa  password
[root@data4 ~]# rabbitmqctl  set_user_tags aaa management
[root@data4 ~]# rabbitmqctl  set_permissions -p aaa_project aaa '.*' '.*' '.*'
```

bbb 项目账号

```
[root@data4 ~]# rabbitmqctl  add_vhost bbb_project
[root@data4 ~]# rabbitmqctl  add_user bbb  password
[root@data4 ~]# rabbitmqctl  set_user_tags bbb management
[root@data4 ~]# rabbitmqctl  set_permissions -p bbb_project bbb '.*' '.*' '.*'
```


关于权限控制可以参考这里 https://wangying.sinaapp.com/archives/2277


删除 guest 账号

```
[root@data4 ~]#  rabbitmqctl delete_user guest
```

设置集群名称(可选)

```
[root@data4 ~]# rabbitmqctl set_cluster_name 集群名称
```

设置镜像队列列策略略(任意⼀一个节点操作)

```
[root@data4 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
```

在data5模拟宕机情况

```
[root@data5 ~]# rabbitmqctl stop_app
```

在主节点,强制移除节点

```
[root@data4 ~]# rabbitmqctl forget_cluster_node rabbit@data5
```

主动移除某个节点,在需要移除的某个节点

```
[root@data6 ~]# rabbitmqctl stop_app
[root@data6 ~]#  rabbitmqctl reset
```

标签:rabbitmq,rabbitmqctl,集群,data4,data5,镜像,root,节点
来源: https://www.cnblogs.com/xietaiyang/p/14977940.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有