MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。
- 几个概念
Exchange:交换机,决定了消息路由规则;
Queue:消息队列;
Channel:进行消息读写的通道;
Bind:绑定了Queue和Exchange,意即为符合什么样路由规则的消息,将会放置入哪一个消息队列;
- 实验环境
一台磁盘节点:192.168.177.145
一台内存节点:192.168.177.135
一台内存节点:192.168.177.132
磁盘节点
# vim /etc/hostname ??mq01.localadmin# vim /etc/hosts ?192.168.177.145 mq01 ?192.168.177.135 mq02 ?192.168.177.132 mq03# init 6
内存节点
# vim /etc/hostname ??mq02.localadmin# vim /etc/hosts ?192.168.177.145 mq01 ?192.168.177.135 mq02 ?192.168.177.132 mq03# init 6
内存节点
# vim /etc/hostname ??mq03.localadmin# vim /etc/hosts ?192.168.177.145 mq01 ?192.168.177.135 mq02 ?192.168.177.132 mq03# init 6
磁盘节点
# systemctl stop firewalld.service# setenforce 0# ln -s /usr/lib/rabbitmq/bin/* /usr/bin/ //识别命令# rabbitmq-plugins enable rabbitmq_management ??//提供web端# systemctl start rabbitmq-server.service ?//开启服务# rabbitmqctl cluster_status ??//查看状态
内存节点(两台一样)
# systemctl stop firewalld.service# setenforce 0# ln -s /usr/lib/rabbitmq/bin/* /usr/bin/ //识别命令# rabbitmq-plugins enable rabbitmq_management ??//提供web端# systemctl start rabbitmq-server.service ?//开启服务# rabbitmqctl cluster_status ??//查看状态
磁盘节点
# systemctl stop rabbitmq-server.service# cd /var/lib/rabbitmq/# cat .erlang.cookie ???JZVFRKVBEINPGMWDOFOR//查看序列号,进行复制# systemctl start rabbitmq-server.service
内存节点(两台一样)
# systemctl stop rabbitmq-server.service# cd /var/lib/rabbitmq/# vim .erlang.cookie ??JZVFRKVBEINPGMWDOFOR ?//换成这个# systemctl start rabbitmq-server.service# rabbitmqctl stop_app ?//停掉rabbitmq应用# rabbitmqctl join_cluster --ram rabbit@mq01 ???//调用cluster命令,将mq02连接到mq01# rabbitmqctl start_app ?//启用rabbitmq应用# rabbitmqctl cluster_status ?//查看状态
磁盘节点
# rabbitmqctl cluster_status ?//查看状态
大型网站架构之千万PV之RabbitMQ
原文地址:http://blog.51cto.com/13620936/2152923