【Centos7系列】RabbitMQ集群

Iceboundnana 发布于 2023-05-25 807 次阅读


基础配置

  1. openstack云平台中创建三台云主机(1核/2G内存/20G)
  2. 使用CRT连接工具进行远程连接
  3. 三个节点分别上传rabbitmq-repo.tar.gz压缩包并解压至/opt目录下
[root@rabbitmq1 ~]# tar -zxvf rabbitmq-repo.tar.gz -C /opt/
  1. 配置域名解析
[root@rabbitmq1 ~]# cat /etc/hosts
192.168.200.3 rabbitmq1
192.168.200.12 rabbitmq2
192.168.200.15 rabbitmq3
  1. 配置YUM源
[root@rabbitmq1 ~]# cat > /etc/yum.repos.d/local.repo <<EOF
> [rabbitmq]
> name=rabbitmq
> baseurl=file:///opt/rabbitmq-repo
> gpgcheck=0
> enabled=1
> EOF

RabbitMQ服务

  1. 安装
[root@rabbitmq1 ~]# yum install -y rabbitmq-server
  1. 开启服务及查询状态
[root@rabbitmq1 ~]# systemctl start rabbitmq-server
[root@rabbitmq1 ~]# systemctl status rabbitmq-server
  1. 配置界面访问
## 启动图形化页面插件
[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management

## 重启服务
[root@rabbitmq1 ~]# service rabbitmq-server restart
  1. 访问rabbitmq1节点的RabbitMQ监控界面
    rabbitmq1加端口15672
    http://192.168.200.3:15672
    使用用户名:guest,密码:guset登录

部署RabbitMQ集群服务

  1. 配置节点间的通信
## 查看rabbitmq1节点的.erlang.cookie文件
[root@rabbitmq1 ~]# cat /var/lib/rabbitmq/.erlang.cookie

## 将该文件复制到rabbitmq2和rabbitmq3节点的/var/lib/rabbitmq/目录下
[root@rabbitmq1 ~]# scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/
[root@rabbitmq1 ~]# scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/
  • 【注意】
    • Rabbitmq的集群是依附于erlang集群来工作的,所以必须先构建起一个erlang集群
    • erlang集群中各节点是由magic cookie来实现的,每个节点上要保持相同的.erlang.cookie文件,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限
    • 必须保证各节点cookie一致,不然节点之间就无法通信
  1. 修改该文件的用户与用户组
[root@rabbitmq2 ~]# chown rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq3 ~]# chown rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie
  1. 配置节点加如集群
## rabbitmq2节点
[root@rabbitmq2 ~]# systemctl restart rabbitmq-server
[root@rabbitmq2 ~]# rabbitmqctl stop_app
[root@rabbitmq2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1
[root@rabbitmq2 ~]# rabbitmqctl start_app

## rabbitmq3节点
[root@rabbitmq3 ~]# systemctl restart rabbitmq-server
[root@rabbitmq3 ~]# rabbitmqctl stop_app
[root@rabbitmq3 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1
[root@rabbitmq3 ~]# rabbitmqctl start_app
  1. 配置RAM节点启用界面
## 在rabbitmq2和rabbitmq3节点上启用rabbitmq_management
[root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq2 ~]# service rabbitmq-server restart

[root@rabbitmq3 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq3 ~]# service rabbitmq-server restart

访问验证

使用浏览器访问:http://192.168.200.3:15672

rabbitmq1节点为数据节点,rabbitmq2rabbitmq3节点为RAM内存节点

RabbitMQ集群常用命令

  • 查看插件打开情况
[root@rabbitmq1 ~]# rabbitmq-plugins list
  • 启动/关闭监控管理器
[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq1 ~]# rabbitmq-plugins disable rabbitmq_management
  • 查看所有队列
[root@rabbitmq1 ~]# rabbitmqctl list_queuesListing queues ......done.
  • 清除所有队列
[root@rabbitmq1 ~]# rabbitmqctl reset
  • 查看用户
[root@rabbitmq1 ~]# rabbitmqctl list_users
Listing users ...
guest   [administrator]
...done.
  • 查看状态
[root@rabbitmq1 ~]# rabbitmqctl status
  • 查看集群状态,在RabbitMQ集群的任一节点上,可以查看RabbitMQ集群的状态
[root@rabbitmq1 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1]},{ram,[rabbit@rabbitmq3,rabbit@rabbitmq2]}]},
 {running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},
 {cluster_name,<<"rabbit@rabbitmq1">>},
 {partitions,[]}]
...done.

可查看到rabbitmq1节点为disc磁盘节点,rabbitmq2节点和rabbitmq3节点为RAM内存节点


  • 添加用户admin,并设置密码为admin
[root@rabbitmq1 ~]# rabbitmqctl add_user admin admin
Creating user "admin" ...
...done.
[root@rabbitmq1 ~]# rabbitmqctl list_users
Listing users ...
admin   []
guest   [administrator]
...done.
  • 删除用户
[root@rabbitmq1 ~]# rabbitmqctl delete_user admin
Deleting user "admin" ...
...done.
[root@rabbitmq1 ~]# rabbitmqctl list_users
Listing users ...
guest   [administrator]
...done.
  • 修改admin用户的密码为admin123
[root@rabbitmq1 ~]# rabbitmqctl change_password admin admin123
Changing password for user "admin" ...
...done.
此作者没有提供个人介绍。
最后更新于 2023-05-25