人人IT網

人人IT網

當前位置: 主頁 > 其它綜合 > MQ >

企業私有雲之rabbitmq高可用

時間:2016-10-24 17:59來源:Internet 作者:Internet 點擊:
默認openstack使用rabbitmq做信息隊列,如果想是雲高可用,那麼需要對每個涉及的組件都進行高可用配置,本文主要介紹如何使用rabbitmq做高可用。高可用的方法为:通過 Erla

默認openstack使用rabbitmq做信息隊列,如果想是雲高可用,那麼需要對每個涉及的組件都進行高可用配置,本文主要介紹如何使用rabbitmq做高可用。

高可用的方法为:

通過 Erlang 的分布式特性(通過 magic cookie 認證節點)進行 RabbitMQ 集群,各 RabbitMQ 服務为對等節點,即每個節點都提供服務给客戶端連接,進行消息發送與接收。
這些節點通過 RabbitMQ HA 隊列(鏡像隊列)進行消息隊列結構复制。本方案中搭建 3 個節點,並且都是磁盤節點(所有節點狀態保持一致,節點完全對等),只要有任何一個節點能夠工作,RabbitMQ 集群對外就能提供服務。

環境为:

系統centos 7.1

rabbitmq版本是3.6.2

主機信息

node1 10.10.33.163
node2 10.10.33.166
node3 10.10.33.167

/etc/hosts配置为

10.10.33.163 ip-10-10-33-163
10.10.33.166 ip-10-10-33-166
10.10.33.167 ip-10-10-33-167

下面是開始安裝

一、安裝

安裝第三方庫與rabbitmq

yum install -y epel-release
yum install rabbitmq-server

启動服務

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

二、配置

在node1裏配置

將node1的/var/lib/rabbitmq/.erlang.cookie复制到node2與node3

修改權限(所有節點)

chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

在node2裏配置

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl stop_app
Stopping node 'rabbit@ip-10-10-33-166' ...
[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163
Clustering node 'rabbit@ip-10-10-33-166' with 'rabbit@ip-10-10-33-163' ...
You have new mail in /var/spool/mail/root
[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl start_app
Starting node 'rabbit@ip-10-10-33-166' ...

在node3裏配置

[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl stop_app
Stopping node 'rabbit@ip-10-10-33-167' ...
[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163
Clustering node 'rabbit@ip-10-10-33-167' with 'rabbit@ip-10-10-33-163' ...
[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl start_app
Starting node 'rabbit@ip-10-10-33-167' ...

查看集群狀態

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@ip-10-10-33-166' ...
[{nodes,[{disc,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-166',
                'rabbit@ip-10-10-33-167']}]},
 {running_nodes,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-167',
                 'rabbit@ip-10-10-33-166']},
 {cluster_name,<<"rabbit@ip-10-10-33-163">>},
 {partitions,[]},
 {alarms,[{'rabbit@ip-10-10-33-163',[]},
          {'rabbit@ip-10-10-33-167',[]},
          {'rabbit@ip-10-10-33-166',[]}]}]

三、集群高可用配置

設計鏡像隊列策略

在任何一個節點執行

[root@ip-10-10-33-163 ~]# rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'
Setting policy "ha-all" for pattern "^(?!amq\\.).*" to "{\"ha-mode\": \"all\"}" with priority "0" ...


本文出自 “吟―技術交流” 博客,請務必保留此出處http://go.rritw.com/dl528888.blog.51cto.com/2382721/1864895


From:51CTO
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容