centos搭建3个节点的最新版本RabbitMQ集群

一、CentOS环境准备工作

VMware安装一台虚拟机,克隆两台。地址分配如下:

名称地址
node01192.168.0.200
node02192.168.0.201
node03192.168.0.202

1、修改主机名

[root@node01 rabbitmq]# hostname
node01
[root@node01 rabbitmq]#
[root@node02 rabbitmq]# hostname
node02
[root@node02 rabbitmq]# 
[root@node03 rabbitmq]# hostname
node03
[root@node03 rabbitmq]# 

2、修改hosts文件

[root@node01 rabbitmq]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.200 node01
192.168.0.201 node02
192.168.0.202 node03
[root@node01 rabbitmq]# 

二、下载所需的rpm包

1、下载地址&选择版本

RabbitMQ-server

https://packagecloud.io/rabbitmq/rabbitmq-server

erlang

https://packagecloud.io/rabbitmq/erlang

Erlang:是一个结构化,动态类分布语言。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。

socat

http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm

2、上传到服务器

[root@node01 ~]# ls
anaconda-ks.cfg                   rabbitmq-server-3.8.4-1.el7.noarch.rpm
erlang-22.3.4.7-1.el6.x86_64.rpm  socat-1.7.3.2-5.el7.lux.x86_64.rpm
[root@node01 ~]# 

三、安装软件包

1、使用官方文档快速安装

rabbitmq-server quick install地址

https://packagecloud.io/rabbitmq/rabbitmq-server/install#bash-rpm

执行

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

erlang quick install地址

https://packagecloud.io/rabbitmq/erlang/install#bash-rpm

执行

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

2、yum查看RabbitMQ与erlang

[root@node01 ~]# yum list | grep erlang
erlang.x86_64                              23.3.1-1.el7                rabbitmq_erlang
[root@node01 ~]#  yum list |grep rabbit
erlang.x86_64                              23.3.1-1.el7                rabbitmq_erlang
librabbitmq.i686                           0.8.0-3.el7                 base     
librabbitmq.x86_64                         0.8.0-3.el7                 base     
librabbitmq-devel.i686                     0.8.0-3.el7                 base     
librabbitmq-devel.x86_64                   0.8.0-3.el7                 base     
librabbitmq-examples.x86_64                0.8.0-3.el7                 base     
rabbitmq-server.noarch                     3.8.14-1.el7                rabbitmq_rabbitmq-server

3、yum安装自动解决依赖

[root@node01 ~]# yum install -y rabbitmq-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.8.14-1.el7 will be installed
--> Processing Dependency: erlang >= 21.3 for package: rabbitmq-server-3.8.14-1.el7.noarch
--> Processing Dependency: socat for package: rabbitmq-server-3.8.14-1.el7.noarch
--> Running transaction check
---> Package erlang.x86_64 0:23.3.1-1.el7 will be installed
---> Package socat.x86_64 0:1.7.3.2-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================
 Package                            Arch                      Version                           Repository                                   Size
==================================================================================================================================================
Installing:
 rabbitmq-server                    noarch                    3.8.14-1.el7                      rabbitmq_rabbitmq-server                     15 M
Installing for dependencies:
 erlang                             x86_64                    23.3.1-1.el7                      rabbitmq_erlang                              19 M
 socat                              x86_64                    1.7.3.2-2.el7                     base                                        290 k

Transaction Summary
==================================================================================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 35 M
Installed size: 50 M
Downloading packages:
(1/3): socat-1.7.3.2-2.el7.x86_64.rpm                                                                                      | 290 kB  00:00:00     
(2/3): rabbitmq-server-3.8.14-1.el7.noarch.rpm                                                                             |  15 MB  00:00:44     
(3/3): erlang-23.3.1-1.el7.x86_64.rpm                                                                                      |  19 MB  00:00:47     
--------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                             743 kB/s |  35 MB  00:00:47     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : socat-1.7.3.2-2.el7.x86_64                                                                                                     1/3 
  Installing : erlang-23.3.1-1.el7.x86_64                                                                                                     2/3 
  Installing : rabbitmq-server-3.8.14-1.el7.noarch                                                                                            3/3 
  Verifying  : rabbitmq-server-3.8.14-1.el7.noarch                                                                                            1/3 
  Verifying  : erlang-23.3.1-1.el7.x86_64                                                                                                     2/3 
  Verifying  : socat-1.7.3.2-2.el7.x86_64                                                                                                     3/3 

Installed:
  rabbitmq-server.noarch 0:3.8.14-1.el7                                                                                                           

Dependency Installed:
  erlang.x86_64 0:23.3.1-1.el7                                            socat.x86_64 0:1.7.3.2-2.el7                                           

Complete!

四、启动服务

1、查看插件

[root@node01 ~]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: [failed to contact rabbit@node01 - status not shown]
 |/
[  ] rabbitmq_amqp1_0                  3.8.14
[  ] rabbitmq_auth_backend_cache       3.8.14
[  ] rabbitmq_auth_backend_http        3.8.14
[  ] rabbitmq_auth_backend_ldap        3.8.14
[  ] rabbitmq_auth_backend_oauth2      3.8.14
[  ] rabbitmq_auth_mechanism_ssl       3.8.14
[  ] rabbitmq_consistent_hash_exchange 3.8.14
[  ] rabbitmq_event_exchange           3.8.14
[  ] rabbitmq_federation               3.8.14
[  ] rabbitmq_federation_management    3.8.14
[  ] rabbitmq_jms_topic_exchange       3.8.14
[  ] rabbitmq_management               3.8.14
[  ] rabbitmq_management_agent         3.8.14
[  ] rabbitmq_mqtt                     3.8.14
[  ] rabbitmq_peer_discovery_aws       3.8.14
[  ] rabbitmq_peer_discovery_common    3.8.14
[  ] rabbitmq_peer_discovery_consul    3.8.14
[  ] rabbitmq_peer_discovery_etcd      3.8.14
[  ] rabbitmq_peer_discovery_k8s       3.8.14
[  ] rabbitmq_prometheus               3.8.14
[  ] rabbitmq_random_exchange          3.8.14
[  ] rabbitmq_recent_history_exchange  3.8.14
[  ] rabbitmq_sharding                 3.8.14
[  ] rabbitmq_shovel                   3.8.14
[  ] rabbitmq_shovel_management        3.8.14
[  ] rabbitmq_stomp                    3.8.14
[  ] rabbitmq_top                      3.8.14
[  ] rabbitmq_tracing                  3.8.14
[  ] rabbitmq_trust_store              3.8.14
[  ] rabbitmq_web_dispatch             3.8.14
[  ] rabbitmq_web_mqtt                 3.8.14
[  ] rabbitmq_web_mqtt_examples        3.8.14
[  ] rabbitmq_web_stomp                3.8.14
[  ] rabbitmq_web_stomp_examples       3.8.14

2、启动服务

[root@node01 ~]# systemctl start rabbitmq-server

3、查看状态

[root@node01 ~]# rabbitmqctl status
Status of node rabbit@node01 ...
Runtime

OS PID: 9142
OS: Linux
Uptime (seconds): 19
Is under maintenance?: false
RabbitMQ version: 3.8.14
Node name: rabbit@node01
Erlang configuration: Erlang/OTP 23 [erts-11.2] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
Erlang processes: 278 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60

Plugins

Enabled plugin file: /etc/rabbitmq/enabled_plugins
Enabled plugins:


Data directory

Node data directory: /var/lib/rabbitmq/mnesia/rabbit@node01
Raft data directory: /var/lib/rabbitmq/mnesia/rabbit@node01/quorum/rabbit@node01

Config files


Log file(s)

 * /var/log/rabbitmq/rabbit@node01.log
 * /var/log/rabbitmq/rabbit@node01_upgrade.log

Alarms

(none)

Memory

Total memory used: 0.0964 gb
Calculation strategy: rss
Memory high watermark setting: 0.4 of available memory, computed to: 0.4095 gb

other_proc: 0.0298 gb (30.87 %)
code: 0.0251 gb (26.03 %)
reserved_unallocated: 0.0157 gb (16.31 %)
other_system: 0.0126 gb (13.05 %)
allocated_unused: 0.008 gb (8.32 %)
other_ets: 0.0029 gb (3.05 %)
atom: 0.0014 gb (1.43 %)
plugins: 0.0003 gb (0.34 %)
metrics: 0.0002 gb (0.23 %)
binary: 0.0002 gb (0.2 %)
mnesia: 0.0001 gb (0.09 %)
quorum_ets: 0.0 gb (0.05 %)
msg_index: 0.0 gb (0.03 %)
connection_channels: 0.0 gb (0.0 %)
connection_other: 0.0 gb (0.0 %)
connection_readers: 0.0 gb (0.0 %)
connection_writers: 0.0 gb (0.0 %)
mgmt_db: 0.0 gb (0.0 %)
queue_procs: 0.0 gb (0.0 %)
queue_slave_procs: 0.0 gb (0.0 %)
quorum_queue_procs: 0.0 gb (0.0 %)

File Descriptors

Total: 2, limit: 32671
Sockets: 0, limit: 29401

Free Disk Space

Low free disk space watermark: 0.05 gb
Free disk space: 27.4761 gb

Totals

Connection count: 0
Queue count: 0
Virtual host count: 1

Listeners

Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

4、开启web管理界面

[root@node01 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@node01:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@node01...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.

5、打开官网释义端口

# firewall-cmd --permanent --add-port=15672/tcp
# firewall-cmd --permanent --add-port=5672/tcp
# systemctl restart firewalld.service

6、添加用户与赋权

[root@node01 ~]# rabbitmqctl add_user admin admin
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

[root@node01 ~]# rabbitmqctl set_permissions -p / admin "." "." ".*"
Setting permissions for user "admin" in vhost "/" ...

[root@node01 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...

7、打开web界面

地址:

http://192.168.0.200:15672

在这里插入图片描述

五、其他节点加入集群

1、各节点同步cookie文件

[root@node01 ~]# cd /var/lib/rabbitmq/
[root@node01 rabbitmq]# ls -al
total 8
drwxr-xr-x.  3 rabbitmq rabbitmq   42 Apr  3 06:35 .
drwxr-xr-x. 25 root     root     4096 Apr  3 06:35 ..
-r--------.  1 rabbitmq rabbitmq   20 Apr  3 00:00 .erlang.cookie
drwxr-x---.  4 rabbitmq rabbitmq  123 Apr  3 06:35 mnesia
[root@node01 rabbitmq]# 
[root@node01 rabbitmq]# scp .erlang.cookie root@node02:/var/lib/rabbitmq/
root@node02's password: 
.erlang.cookie                                                                                                  100%   20    26.2KB/s   00:00    
[root@node01 rabbitmq]# scp .erlang.cookie root@node03:/var/lib/rabbitmq/
root@node03's password: 
.erlang.cookie          

2、重启服务

  [root@node01 rabbitmq]# systemctl restart rabbitmq-server

3、各节点打开监控插件

[root@node01 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@node01:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@node01...
Plugin configuration unchanged.
[root@node01 ~]# 

4、加入节点

node02节点

[root@node02 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@node02 ...
[root@node02 rabbitmq]# rabbitmqctl reset
Resetting node rabbit@node02 ...
[root@node02 rabbitmq]# rabbitmqctl join_cluster --ram rabbit@node01
Clustering node rabbit@node02 with rabbit@node01
[root@node02 rabbitmq]# rabbitmqctl  start_app
Starting node rabbit@node02 ...

node03节点

[root@node03 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@node03 ...
[root@node03 rabbitmq]# rabbitmqctl reset
Resetting node rabbit@node03 ...
[root@node03 rabbitmq]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1
Clustering node rabbit@node03 with rabbit@rabbitmq1
^CInterrupt
[root@node03 rabbitmq]# rabbitmqctl join_cluster --ram rabbit@node01
Clustering node rabbit@node03 with rabbit@node01
[root@node03 rabbitmq]# rabbitmqctl start_app
Starting node rabbit@node03 ...

5、web界面展示

在这里插入图片描述

六、总结

RabbitMQ与Erlang版本是个有一些兼容问题版本选对,可能遇到无法启动、无配置文件等其他问题。官方文档介绍相当详细,是个借鉴的好工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Energet!c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值