openstack -------RabbitMQ集羣部署

 1、RabbitMQ簡介

    RabbitMQ屬於一個流行的開源消息隊列系統。屬於AMQP( 高級消息隊列協議 ) 標準的一個 實現。是應用層協議的一個開放標準,爲面向消息的中間件設計。用於在分佈式系統中存儲轉發消息,在 易用性、擴展性、高可用性等方面表現不俗。node

2、RabbitMQ工做原理

  MQ 是消費 - 生產者模型的一個典型的表明,一端往消息隊列中不斷寫入消息,而另外一端則能夠讀取或者訂閱隊列中的消息。 MQ 則是遵循了 AMQP協議的具體實現和產品。在項目中,將一些無需即時返回且耗時的操做提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提升了系統的吞吐量。web

 

一、客戶端鏈接到消息隊列服務器,打開一個channel。vim

二、客戶端聲明一個exchange,並設置相關屬性。服務器

三、客戶端聲明一個queue,並設置相關屬性。cookie

四、客戶端使用routing key,在exchange和queue之間創建好綁定關係。app

五、客戶端投遞消息到exchange。異步

六、 exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列裏分佈式

3、部署RabbitMQ 集羣

1>全部機器所有安裝測試

yum install -y erlang rabbitmq-server.noarch

2>所有啓動spa

 

3>查看啓動狀態是否啓動

 

4>查看監聽端口

 

5>lichaohsot1 : 編輯rabbittmq變量文件

vim /etc/rabbitmq/rabbitmq-env.conf

#編輯內容以下

RABBITMQ_NODE_PORT=5672
limit -S -n 4096
RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
RABBITMQ_NODE_IP_ADDRESS=192.168.206.137

6>發送給其餘兩臺機器並修改ip

#1

#2

 

#3修改

 

#4修改

 

7>全部機器開啓rabbitmq的web管理頁面

rabbitmq-plugins enable rabbitmq_management

8>訪問web界面

web界面端口號 : 15672

 

9>輸入帳戶密碼  並登陸(默認爲 guest)

 

10>lichaohost1 發送erlang.cookie到其餘節點配置集羣

 

12>lichaohost2和lichaohost3中止應用,並以ram的方式加入lichaohost1節點,並重啓應用

systemctl restart rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@lichaohost1
rabbitmqctl start_app

#

 

13>lichaohost1 查看集羣狀態

 

14>登陸web 界面 驗證

 

 15>添加一個openstack的用戶,並設密碼爲admin。並設置權限和成爲管理員

   #1  

rabbitmqctl add_user openstack admin    (添加用戶)

 

#2  

rabbitmqctl set_permissions openstack ".*" ".*" ".*"    (設置權限)

 

#3    

rabbitmqctl set_user_tags openstack administrator   (設置爲管理員)

 

16>登陸測試

 

#

 

相關文章
相關標籤/搜索