本文共 2044 字,大约阅读时间需要 6 分钟。
MQ(Mesee Qucue消息队列)是种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,
而无需专用链接来连接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ是目前流行的开源消息队列系统,用Erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。
IP地址 | 主机名 | 用途 |
---|---|---|
192.168.10.157 | mq1 | 磁盘节点 |
192.168.10.178 | mq2 | 内存节点 |
192.168.10.163 | mq3 | 内存节点 |
vim /etc/hosts192.168.10.157 mq1192.168.10.178 mq2192.168.10.163 mq3 #修改完需重启:init 6
yum install epel-release -y //安装源yum install -y rabbitmq-server //安装服务
/usr/lib/rabbitmq/bin/rabbitmq-plugins list //查看有哪些服务,插件安装情况
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management //启动管理服务
systemctl start rabbitmq-server.service //开启rabbitmq服务netstat -ntap | grep 5672 //查看端口,其中15672和55672都是rabbitmq的管理端口,5672则是和生产者、消费者通信的端口ln -s /usr/lib/rabbitmq/bin/* /usr/bin/ //方便管理,建立软链接
rabbitmqctl cluster-status //测试能否连接上
Rabbitmq的集群是依赖于Erlang的集群来工作的,所以必须先构建起Erlang的集群环境。在Erlang的集群中,各节点是通过一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信
cd /var/lib/rabbitmq/ vim .erlang.cookie #.erlang.cookie是隐藏文件,使用ls -a查看,复制mq1的cookie,修改mq2,mq3与之相同
systemctl restart rabbitmq-server.service //重启 systemctl stop firewalld.service setenforce 0 //关闭防火墙和安全功能
rabbitmqctl stop_app //停止rabbitmq应用rabbitmqctl join_cluster --ram rabbit@mq1 //调用cluster命令,将mq2连接到mq1,-ram以内存节点形式添加rabbitmqctl start_app //开启rabbitmq应用
#mq1查看已连接rabbitmqctl cluster_statusCluster status of node rabbit@mq1 ...[{nodes,[{disc,[rabbit@mq1]},{ram,[rabbit@mq3,rabbit@mq2]}]}, {running_nodes,[rabbit@mq3,rabbit@mq2,rabbit@mq1]}, {cluster_name,<<"rabbit@mq1">>}, {partitions,[]}]...done.
以上便完成了配置RabbitMQ默认集群模式
转载于:https://blog.51cto.com/13641879/2152912