作者:南方的狼1975 | 来源:互联网 | 2023-05-19 06:25
Rabbitmq是目前流行的开源消息队列系统,用erlang语言开发。Rabbitmq是amqp(高级消息队列协议)的标准实现。群集非常方便,因为erlang天生就是一门分布式语言
Rabbitmq是目前流行的开源消息队列系统,用erlang语言开发。Rabbitmq是amqp(高级消息队列协议)的标准实现。群集非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。
使用场景:在项目中,将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大地节省了服务器的请求响应时间,从而提高了系统的吞吐量。
实验环境
Rabbitmq01集群的配置。
IP地址 主机名 操作系统 防火墙和selinux 用途
192.168.252.130 rabbitmq01 centos7(64位) 关闭 磁盘节点
192.168.252.166 rabbitmq02 centos7(64位) 关闭 内存节点
192.168.252.167 rabbitmq03 centos7(64位) 关闭 内存节点
首先我们需要配置三个节点的hosts文件,将如下内容分别加入到三台服务器上。
192.168.252.130 rabbitmq01
192.168.252.166 rabbitmq02
192.168.252.167 rabbitmq03
centos7-1(ip 192.168.252.130)
vim /etc/hostname //修改主机名
mq01.localdomain //删除原有内容并添加此内容
vim /etc/hosts
192.168.252.130 mq01
192.168.252.166 mq02
192.168.252.167 mq03
yum install -y epel-release
yum install -y rabbitmq-server
ln -s /usr/lib/rabbitmq//bin/* /usr/bin/
rabbitmq-plugins list //查看插件安装状况
rabbitmq-plugins enable rabbitmq_management //开启管理功能
systemctl start rabbitmq-server.service //开启服务
rabbitmqctl cluster_status //检查集群状态
Cluster status of node rabbit@mq01 ...[{nodes,[{disc,[rabbit@mq01]}]},
br/>[{nodes,[{disc,[rabbit@mq01]}]},
{running_nodes,[rabbit@mq01]},>},
br/>{cluster_name,<<"rabbit@mq01">>},
{partitions,[]}]
...done.
centos7-2(ip 192.168.252.166)
vim /etc/hostname //修改主机名
mq02.localdomain //删除原有内容并添加此内容
vim /etc/hosts
192.168.252.130 mq01
192.168.252.166 mq02
192.168.252.167 mq03
yum install -y epel-release
yum install -y rabbitmq-server
ln -s /usr/lib/rabbitmq//bin/* /usr/bin/
rabbitmq-plugins enable rabbitmq_management //开启管理功能
systemctl start rabbitmq-server.service //开启服务
rabbitmqctl cluster_status //检查集群状态
Cluster status of node rabbit@mq02 ...[{nodes,[{disc,[rabbit@mq02]}]},
br/>[{nodes,[{disc,[rabbit@mq02]}]},
{running_nodes,[rabbit@mq02]},>},
br/>{cluster_name,<<"rabbit@mq02">>},
{partitions,[]}]
centos7-3(ip 192.168.252.167)
vim /etc/hostname //修改主机名
mq03.localdomain //删除原有内容并添加此内容
vim /etc/hosts
192.168.252.130 mq01
192.168.252.166 mq02
192.168.252.167 mq03
yum install -y epel-release
yum install -y rabbitmq-server
ln -s /usr/lib/rabbitmq//bin/* /usr/bin/
rabbitmq-plugins enable rabbitmq_management //开启管理功能
systemctl start rabbitmq-server.service //开启服务
rabbitmqctl cluster_status //检查集群状态
Cluster status of node rabbit@mq03 ...[{nodes,[{disc,[rabbit@mq03]}]},
br/>[{nodes,[{disc,[rabbit@mq03]}]},
{running_nodes,[rabbit@mq03]},>},
br/>{cluster_name,<<"rabbit@mq03">>},
{partitions,[]}]
...done.
修改COOKIE
复制mq01的COOKIE序列号
vim /var/lib/rabbitmq/.erlang.COOKIE
AUKBYMMUHDEXPODERJIX
将其粘贴到另外两台服务器的COOKIE文件中
重启mq02,mq03的rabbitmq服务
systemctl stop rabbitmq-server.service
systemctl start rabbitmq-server.service
在02和03上操作内存节点
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@mq01
rabbitmqctl start_app
rabbitmqctl cluster_status
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq03,rabbit@mq02]}]},{running_nodes,[rabbit@mq02,rabbit@mq01,rabbit@mq03]},
br/>{running_nodes,[rabbit@mq02,rabbit@mq01,rabbit@mq03]},
{cluster_name,<<"rabbit@mq01">>},
{partitions,[]}]
...done.
至此rabbitmq部署完成打开浏览器http://192.168.252.130:15672
显示该网页表示搭建成功