大型網站架構之千萬PV之RabbitMQ
阿新 • • 發佈:2018-08-01
內存 col fir ebs bin vim start ofo abd 簡介
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