大型網站架構之千萬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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章