云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

2018-12-29 09:22:59作者:戴进稿源:云网牛站

本文介绍在Ubuntu 18.04 LTS系统服务器上安装和配置RabbitMQ集群的步骤。

 

前提要求如下

1、安装了Ubuntu 18.04 LTS服务器。

2、至少两个RabbitMQ服务器。

3、具有sudo权限的用户。

4、服务器应该可以访问Internet。

5、在Ubuntu 18.04上设置RabbitMQ Cluster基于两台具有以下IP地址和主机名的服务器:

服务器/MQ Server 1:主机名/mq1.example.com-IP地址/192.168.121.11

服务器/MQ Server 2:主机名/mq2.example.com-IP地址/192.168.121.8

 

第1步:设置主机名和DNS

在Ubuntu 18.04上安装RabbitMQ集群的第一步是配置正确的主机名和DNS。

服务器/MQ Server 1:

sudo hostnamectl set-hostname mq1.example.com --static

服务器/MQ Server 2:

sudo hostnamectl set-hostname mq2.example.com --static

如果没有DNS服务器,则可以将记录添加到/etc/hosts文件中

echo "192.168.121.11 mq1.example.com mq1" >> /etc/hosts

echo "192.168.121.8 mq2.example.com mq2" >> /etc/hosts

然后更新Ubuntu 18.04系统:

sudo apt update

sudo apt -y upgrade

 

第2步:在两个节点上安装RabbitMQ Server

请在所有节点上安装RabbitMQ服务器,请参考在Ubuntu 18.04 LTS系统上安装RabbitMQ服务器

在Ubuntu 18.04上安装RabbitMQ有两个部分:

1、安装Erlang/OTP

2、安装RabbitMQ服务器

你的RabbitMQ服务器的状态应该正在运行:

$ sudo systemctl status rabbitmq-server.service

在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

 

第3步:复制RabbitMQ Server 1 Cookie RabbitMQ Server2

要使RabbitMQ群集正常工作,参与群集的所有节点都应具有相同的Cookie,将第一个节点上的Cookie复制到群集中的所有其他节点。

在mq1上运行:

sudo scp /var/lib/rabbitmq/.erlang.cookie mq2:/var/lib/rabbitmq/.erlang.cookie

 

第4步:在Node2上重置RabbitMQ

在节点2上重新配置RabbitMQ并将其加入群集。

1.重新启动RabbitMQ服务

sudo systemctl restart rabbitmq-server

2.停止申请

$ sudo rabbitmqctl stop_app

Stopping rabbit application on node rabbit@mq2 ...

3.重置rabbitmq

$ sudo rabbitmqctl reset

Resetting node rabbit@mq2 ...

3.将节点加入群集

$ sudo rabbitmqctl join_cluster rabbit@mq1

Clustering node rabbit@mq2 with rabbit@mq1

4.开始申请流程

$ sudo rabbitmqctl start_app

Starting node rabbit@mq2 ...

completed with 0 plugins.

检查群集状态:

root@mq1:~# rabbitmqctl cluster_status

warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)

Cluster status of node rabbit@mq1 ...

[{nodes,[{disc,[rabbit@mq1,rabbit@mq2]}]},

{running_nodes,[rabbit@mq2,rabbit@mq1]},

{cluster_name,<<"rabbit@mq2.example.com">>},

{partitions,[]},

{alarms,[{rabbit@mq2,[]},{rabbit@mq1,[]}]}]

 

步骤5:配置RabbitMQ HA策略

创建一个策略,允许队列镜像到群集中的所有节点:

$ sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

Setting policy "ha-all" for pattern ".*" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...

可以使用以下列出配置的策略:

root@mq1:~# sudo rabbitmqctl list_policies

Listing policies for vhost "/" ...

vhost name pattern apply-to definition priority

/ ha-all .* all {"ha-mode":"all"} 0

要删除策略,请使用:

sudo rabbitmqctl clear_policy <policyname>

 

第5步:测试

最后,在Ubuntu 18.04上测试RabbitMQ集群设置,启用RabbitMQ管理Web仪表板以便于管理:

sudo rabbitmq-plugins enable rabbitmq_management

如果有活动的UFW防火墙,请允许TCP端口5672和15672:

sudo ufw allow proto tcp from any to any port 5672,15672

通过打开URL:http://[server IP|Hostname]:15672来访问它:

在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

默认情况下,guest用户存在且只能从localhost连接,可以使用密码guest在本地登录此用户。

要使能够在网络上登录,请创建如下管理员用户:

sudo rabbitmqctl add_user admin StrongPassword

sudo rabbitmqctl set_user_tags admin administrator

使用创建的用户登录RabbitMQ管理界面,应该获得所有Cluster节点的状态:

在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

还可以从Web控制台查看有关节点的更多详细信息:

在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

如果登录RabbitMQ node2并检查创建的RabbitMQ用户,应该看到类似于下面的输出信息:

# rabbitmqctl list_users

Listing users ...

user tags

admin [administrator]

guest [administrator]

至此,你已在Ubuntu 18.04系统上成功安装RabbitMQ群集了。

 

相关主题

在Ubuntu 18.04系统中安装Erlang并测试的方法

精选文章
热门文章