构建RabbitMQ消息队列群集

简介

MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。

特点

MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

实验环境

主机名 IP地址 操作系统 用途
mq01 192.168.100.75 CentOS_7.4_x86_64 磁盘节点
mq02 192.168.100.76 CentOS_7.4_x86_64 内存节点
mq03 192.168.100.77 CentOS_7.4_x86_64 内存节点

搭建步骤

一、准备工作

1、关闭防火墙及selinux

[root@redhat7_5 ~]# systemctl stop firewalld.service
[root@redhat7_5 ~]# systemctl disable firewalld.servic
[root@mq01 ~]# vim /etc/sysconfig/selinux
构建RabbitMQ消息队列群集

2、修改主机名及hosts文件

[root@redhat7_5 ~]# vim /etc/hostname

mq01.localdomain  #添加主机名,第一台mq01依次为mq02、mq03

[root@redhat7_5 ~]# vim /etc/hosts #其他三台都是这样配

#末行添加
192.168.100.75 mq01
192.168.100.76 mq02
192.168.100.77 mq03

[root@redhat7_5 ~]# shutdown -r now #重启服务

二、配置RabbtiMQ(三台配置相同)

1、安装RobbtiMQ软件

[root@mq01 ~]# yum -y install epel-release #安装epel源文件
[root@mq01 ~]# yum -y install rabbitmq-server #安装rabbtimq服务器端

2、优化路径

[root@mq01 ~]# ln -s /usr/lib/rabbitmq/bin/* /usr/bin/ #优化路径

3、启动相关服务

[root@mq01 ~]# rabbitmq-plugins enable rabbitmq_management #启动web端管理服务
构建RabbitMQ消息队列群集

[root@mq01 ~]# systemctl start rabbitmq-server.service #启动rabbitmq服务

[root@mq01 ~]# rabbitmq-plugins list #查看rabbitmq安装模块及其版本号

[root@mq01 ~]# rabbitmqctl cluster_status #检查三台的集群状态,目前相互独立,没有形成集群。

Cluster status of node rabbit@mq01 …  
[{nodes,[{disc,[rabbit@mq01]}]},
 {running_nodes,[rabbit@mq01]},
 {cluster_name,<<"rabbit@mq01">>},
 {partitions,[]}]
...done.

[root@mq01 ~]# netstat -anpt | grep 5672 #查看端口号
构建RabbitMQ消息队列群集

三、构建群集(三台都配置相同)

1、编辑cookie id

[root@mq01 ~]# systemctl stop rabbitmq-server.service #停止三台服务

[root@mq01 ~]# vim /var/lib/rabbitmq/.erlang.cookie #三台值配置成一样的,将mq01的cookie id 复制内容到其他两台

ORPMEUFAADFUFEXAUHIJ

[root@mq01 ~]# systemctl start rabbitmq-server #启动三台服务

2、配置群集

[root@mq02 ~]# rabbitmqctl stop_app #两台内存节点操
Stopping node rabbit@mq02 ...
...done.

[root@mq02 ~]# rabbitmqctl join_cluster --ram rabbit@mq01 #以内存节点形式加入到磁盘节点

rabbitmqctl start_app

[root@mq01 ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@mq01 ...
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq03,rabbit@mq02]}]},  #mq01属于磁盘节点,mq02、mq03属于内存节点
 {running_nodes,[rabbit@mq03,rabbit@mq02,rabbit@mq01]},             #显示各节点,构成了群集
 {cluster_name,<<"rabbit@mq01">>},
 {partitions,[]}]
...done.

3、登录访问

http://192.168.100.76:15672/

构建RabbitMQ消息队列群集

构建RabbitMQ消息队列群集

猜你喜欢

转载自blog.51cto.com/11905606/2300896
今日推荐