0


虚拟机配置RabbitMQ集群教程

RabbitMQ是常用的一款消息中间件,那么如何在我们虚拟机中创建其集群呢?跟着博主这篇文章让你一步到位
本篇搭建的是三台机器为一个集群!假设大家虚拟机都为初始化状态,从0开始(注意集群搭建需要CentOS8以上环境!可以点击官网下载)

1. 配置网络

先对三台机器配各自的网络,具体实例如下图所示(ip根据自己动态调整),最好先操作node01,在步骤3完成后再克隆

在这里插入图片描述

1.1 以node01为例子,创建setup_network.sh脚本文件

注意在bin目录下创建一个可执行文件

  1. vim /bin/setup_network.sh

记得根据自己的网卡调整,我这里用的是第二张网卡ens36,一般是第一个ens33所以根据自己虚拟机情况调整

  1. #!/bin/bash# 检查是否提供了IP地址参数if[$#-ne1];thenecho"Usage: $0 <IP-ADDRESS>"exit1fi# 保存传入的IP地址IPADDR=$1# 删除ens36网络连接
  2. nmcli c del ens36
  3. # 编辑网络配置文件cat> /etc/sysconfig/network-scripts/ifcfg-ens36 <<EOF
  4. TYPE=Ethernet
  5. NAME=ens36
  6. DEVICE=ens36
  7. ONBOOT=yes
  8. IPADDR=$IPADDR # ip传进来
  9. NETMASK=255.255.255.0
  10. GATEWAY=192.168.187.2
  11. DNS1=114.114.114.114
  12. DNS2=8.8.8.8
  13. EOF# 重启NetworkManager服务
  14. systemctl restart NetworkManager
  15. # 启用ens36网络连接
  16. nmcli c up ens36

1.2 运行脚本

  1. #首先修改权限chmod777 /bin/setup_network.sh
  2. #运行 以第一台机器为例子(第二台.101 第三台.102)
  3. /bin/setup_network.sh 192.168.187.100

2. 安装Erlang环境

RabbitMQ必要的运行环境,在docker中就集成好了依赖,单独安装集群就得重新安装

2.1 创建yum库配置文件

  1. vim /etc/yum.repos.d/rabbitmq.repo

一下配置内容出自官方文档:

https://www.rabbitmq.com/docs/install-rpm

  1. # In /etc/yum.repos.d/rabbitmq.repo#### Zero dependency Erlang RPM##[modern-erlang]name=modern-erlang-el8
  2. # uses a Cloudsmith mirror @ yum.novemberain.com in addition to its Cloudsmith upstream.# Unlike Cloudsmith, the mirror does not have any traffic quotasbaseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
  3. https://yum2.novemberain.com/erlang/el/8/$basearch
  4. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/$basearchrepo_gpgcheck=1enabled=1gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
  5. gpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  6. metadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
  7. [modern-erlang-noarch]name=modern-erlang-el8-noarch
  8. # uses a Cloudsmith mirror @ yum.novemberain.com.# Unlike Cloudsmith, it does not have any traffic quotasbaseurl=https://yum1.novemberain.com/erlang/el/8/noarch
  9. https://yum2.novemberain.com/erlang/el/8/noarch
  10. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/noarch
  11. repo_gpgcheck=1enabled=1gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
  12. https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
  13. gpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  14. metadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
  15. [modern-erlang-source]name=modern-erlang-el8-source
  16. # uses a Cloudsmith mirror @ yum.novemberain.com.# Unlike Cloudsmith, it does not have any traffic quotasbaseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
  17. https://yum2.novemberain.com/erlang/el/8/SRPMS
  18. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/SRPMS
  19. repo_gpgcheck=1enabled=1gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
  20. https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
  21. gpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  22. metadata_expire=300pkg_gpgcheck=1autorefresh=1#### RabbitMQ Server##[rabbitmq-el8]name=rabbitmq-el8
  23. baseurl=https://yum2.novemberain.com/rabbitmq/el/8/$basearch
  24. https://yum1.novemberain.com/rabbitmq/el/8/$basearch
  25. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/$basearchrepo_gpgcheck=1enabled=1# Cloudsmith's repository key and RabbitMQ package signing keygpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
  26. https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
  27. gpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  28. metadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
  29. [rabbitmq-el8-noarch]name=rabbitmq-el8-noarch
  30. baseurl=https://yum2.novemberain.com/rabbitmq/el/8/noarch
  31. https://yum1.novemberain.com/rabbitmq/el/8/noarch
  32. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/noarch
  33. repo_gpgcheck=1enabled=1# Cloudsmith's repository key and RabbitMQ package signing keygpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
  34. https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
  35. gpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  36. metadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
  37. [rabbitmq-el8-source]name=rabbitmq-el8-source
  38. baseurl=https://yum2.novemberain.com/rabbitmq/el/8/SRPMS
  39. https://yum1.novemberain.com/rabbitmq/el/8/SRPMS
  40. https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/SRPMS
  41. repo_gpgcheck=1enabled=1gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
  42. gpgcheck=0sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  43. metadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md

2.2 更新yum库

  1. # --nobest表示所需安装包即使不是最佳选择也接受
  2. yum update -y--nobest

2.3 正式安装Erlang

  1. yum install-y erlang

3. 安装RabbitMQ

由于wget下载github老连接不上🙃,这里就采用宿主机下载然后ftp传到虚拟机上
RPM包下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.0/rabbitmq-server-3.13.0-1.el8.noarch.rpm

这里我放到/opt目录下

3.1 解压

  1. rpm-ivh rabbitmq-server-3.13.0-1.el8.noarch.rpm

3.2 RabbitMQ基础配置

  1. # 启用管理界面插件
  2. rabbitmq-plugins enable rabbitmq_management
  3. # 启动 RabbitMQ 服务:
  4. systemctl start rabbitmq-server
  5. # 将 RabbitMQ 服务设置为开机自动启动
  6. systemctl enable rabbitmq-server
  7. # 新增登录账号密码
  8. rabbitmqctl add_user charles 123456# 设置登录账号权限
  9. rabbitmqctl set_user_tags charles administrator
  10. rabbitmqctl set_permissions -p / charles ".*"".*"".*"# 配置所有稳定功能 flag 启用
  11. rabbitmqctl enable_feature_flag all
  12. # 重启RabbitMQ服务生效
  13. systemctl restart rabbitmq-server

注意最后要删掉一开始的rpm配置文件,因为需要的东西已经下载完了

  1. rm-rf /etc/yum.repos.d/rabbitmq.repo

其实到这步后直接克隆就可以啦,省去繁琐的下载和配置时间,记得根据操作1换网络ip就好啦

4. 修改主机名字

  1. # node01 、node02 、node03vim /etc/hostname

5. 集群节点彼此发现

5.1 node01设置

①设置 IP 地址到主机名称的映射

修改文件/etc/hosts,追加如下内容:

  1. 192.168.187.100 node01
  2. 192.168.187.101 node02
  3. 192.168.187.102 node03

②查看当前RabbitMQ节点的Cookie值并记录

  1. [root@node01 ~]# cat /var/lib/rabbitmq/.erlang.cookie
  2. AEZXBETHCPXIACMJTZCB

③重置节点应用

  1. rabbitmqctl stop_app
  2. rabbitmqctl reset
  3. rabbitmqctl start_app

5.2 node02设置

①设置 IP 地址到主机名称的映射

修改文件/etc/hosts,追加如下内容:

  1. 192.168.187.100 node01
  2. 192.168.187.101 node02
  3. 192.168.187.102 node03

②修改当前RabbitMQ节点的Cookie值

node02和node03都改成和node01一样:

  1. vim /var/lib/rabbitmq/.erlang.cookie

③重置节点应用并加入集群

  1. rabbitmqctl stop_app
  2. rabbitmqctl reset
  3. rabbitmqctl join_cluster rabbit@node01
  4. rabbitmqctl start_app

5.3 node03设置

①设置 IP 地址到主机名称的映射

修改文件/etc/hosts,追加如下内容:

  1. 192.168.187.100 node01
  2. 192.168.187.101 node02
  3. 192.168.187.102 node03

②修改当前RabbitMQ节点的Cookie值

node02和node03都改成和node01一样:

  1. vim /var/lib/rabbitmq/.erlang.cookie

③重置节点应用并加入集群

  1. rabbitmqctl stop_app
  2. rabbitmqctl reset
  3. rabbitmqctl join_cluster rabbit@node01
  4. rabbitmqctl start_app

④查看集群状态

  1. rabbitmqctl cluster_status

在这里插入图片描述

到这里集群的搭建就完成啦🎉

5.4 常用操作

如有需要踢出某个节点,则按下面操作执行:

  1. # 被踢出的节点:
  2. rabbitmqctl stop_app
  3. rabbitmqctl reset
  4. rabbitmqctl start_app
  5. # 节点1
  6. rabbitmqctl forget_cluster_node rabbit@node02

本文转载自: https://blog.csdn.net/PleaseBeStrong/article/details/140697564
版权归原作者 躺平攻城狮 所有, 如有侵权,请联系我们删除。

“虚拟机配置RabbitMQ集群教程”的评论:

还没有评论