OpenStack中RabbitMQ高可用性配置

  採用鏡像隊列的方案進行配置html

一、 網絡拓撲node

node1:10.10.11.1vim

node2:10.10.11.2cookie

 

二、 配置hosts網絡

node1+node2:app

vim /etc/hostsspa

>10.10.11.1 rab1server

>10.10.11.2 rab2htm

 

三、 安裝epelrabbitmq

node1+node2:

Centos 5.x

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh epel-release-5*.rpm

Centos 6.x

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -Uvh epel-release-6*.rpm

 

四、 安裝erlang

node1+node2:

yum install erlang

 

五、 下載rabbitMQ並安裝 

node1+node2:

yum install rabbitmq-server

 

【下載地址: http://www.rabbitmq.com/install-rpm.html

rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

      yum install rabbitmq-server-3.3.5-1.noarch.rpm】

 

六、 運行rabbitMQ

node1+node2:

chkconfig rabbitmq-server on

service rabbitmq-server start

 

七、 確保節點使用相同的Erlang cookie文件

 

先中止兩個節點的rabbitMQ

node1:

scp /var/lib/rabbitmq/.erlang.cookie \
root@rab2:/var/lib/rabbitmq/.erlang.cookie

 

八、 關閉防火牆

node1+node2:

service iptables stop

 

九、 配置rabbitMQ集羣

node2:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rab1
rabbitmqctl start_app
 

九、檢測集羣配置

rabbitmqctl cluster_status

 

十、配置鏡像隊列

rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'

 

十一、配置服務使用鏡像隊列

RabbitMQ HA cluster host:port pairs:

rabbit_hosts=rabbit1:5672,rabbit2:5672

How frequently to retry connecting with RabbitMQ:

rabbit_retry_interval=1

How long to back-off for between retries when connecting to RabbitMQ:

rabbit_retry_backoff=2

Maximum retries with trying to connect to RabbitMQ (infinite by default):

rabbit_max_retries=0

Use durable queues in RabbitMQ:

rabbit_durable_queues=false

Use HA queues in RabbitMQ (x-ha-policy: all):

rabbit_ha_queues=true

If you change the configuration from an old setup which did not use HA queues, you should interrupt the service:

# rabbitmqctl stop_app
# rabbitmqctl reset
# rabbitmqctl start_app

Services currently working with HA queues: OpenStack Compute, OpenStack Block Storage, OpenStack Networking, Telemetry.