RabbitMQ 集群配置

简介

MQ(Message Queue,消息队列)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来链接他们。消息传递指的是程序之间通常在消息中发送数据进行通信,而不是通过直接调用彼此来通信。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
RabbitMQ是目前流行的开源消息队列系统,用Erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。如果不熟悉AMOP,直接看RabbitMQ的文档是比较困难的。不过它也只有几个关键概念,这里简单介绍如下:

  • Broker:简单来说就是消息队列服务器实体。
  • Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
    Queue:消息队列载体,每个消息都会被投入到一个或多个队列中。
    Binding:绑定,它的作用就是把Exchange和Queue按照路由规则绑定起来。
    Routing Key:路由关键字,Exchange根据这个关键字进行消息投递
    Vhost:虚拟主机,一个Broker里可以开设多个Vhost,用作不同用户的权限分离。
    Producer:消息生产者,就是投递消息的程序
    Consumer:消息消费者,就是接受消息的程序
    Channel:消息通道,在每个客户端的每个连接里,可建立多个Channel,每个Channel代表一个会话任务。

实验准备

IP地址                  主机名               操作系统                               用途
192.168.5.129      mq01                CentOS 7.4(64位)                 磁盘节点
192.168.5.128      mq02                CentOS 7.4(64位)                 内存节点
192.168.5.122      mq03                CentOS 7.4(64位)                 内存节点

实验开始

1.首先配置三个节点的host文件,将如下内容分别加入到三台服务器上

vim /etc/hostname
删除localname修改为mq01、mq02、mq03
vim /etc/hosts
192.168.5.129 mq01
192.168.5.128 mq02
192.168.5.122 mq03

2.三个节点安装epel-release、rabbit-server。

yum install epel-release -y
yum install rabbit-server -y

3.分别查看三个节点并添加管理服务,最后启动rabbitmq服务:

/usr/lib/rabbitmq/bin/rabbitmq-plugins list                     //查看有哪些服务
/usr/lib/rabbitmq/bin/rabbitmq-pluginns enable rabbitmq_management         // 启动管理服务
/etc/init.d/rabbitmq-server start                                //启动rabbitmq服务

4.使用netstat -an | grep 5672进行查看,有如下三个端口开放说明正常。其中15672和55672都是rabbitmq的管理端口,5672则是和生产者、消费者的通信的端口。

5.构建Erlang群集

在Erlang的集群中,各节点是通过一个magic cookie来实现的,文件是400的全线。所以必须保证各个节点cookie保持一致,否则节点无法通信

systemctl stop rabbitmq.server
cd /var/lib/rabbitmq/
vim .erlang.cookie
将其中一台节点的.erlang.cookie值复制下来保存到其他节点上,或者使用scp的方法也可以,但是要注意文件的权限和属主属组。再次启动两个内存节点的rabbitmq服务。并将它们加入到一个集群当中。

6.将mq02、mq03作为内存阶段与mq01磁盘节点连接起来在mq02、mq03上执行如下命令:

rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@mq01
rabbitmqctl start_app

7. 打开浏览器输入http://192.168.5.129:55672。它会自动将55672端口改变为15672端口。输入默认的Username:guest,默认Password:guest。输入后会出现如下界面:RabbitMQ 集群配置

猜你喜欢

转载自blog.51cto.com/13620950/2152821