RabbitMQ 集群配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]
rabbitmqctl start_app
7. 打开浏览器输入http://192.168.5.129:55672。它会自动将55672端口改变为15672端口。输入默认的Username:guest,默认Password:guest。输入后会出现如下界面:
以上是关于RabbitMQ 集群配置的主要内容,如果未能解决你的问题,请参考以下文章