大型网站架构之千万PV之RabbitMQ

  • 简介

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
大型网站架构之千万PV之RabbitMQ

磁盘节点

# 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

大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ

内存节点

# 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   //查看状态

大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ

内存节点(两台一样)

# 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   //查看状态

大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ

磁盘节点

# systemctl stop rabbitmq-server.service
# cd /var/lib/rabbitmq/
# cat .erlang.cookie 
   JZVFRKVBEINPGMWDOFOR//查看序列号,进行复制
# systemctl start rabbitmq-server.service

大型网站架构之千万PV之RabbitMQ

内存节点(两台一样)

# 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  //查看状态

大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ

磁盘节点

# rabbitmqctl cluster_status  //查看状态

大型网站架构之千万PV之RabbitMQ
大型网站架构之千万PV之RabbitMQ

猜你喜欢

转载自blog.51cto.com/13620936/2152923