RabbitMQ+Haproxy的集群搭建

1. rabbitmq、haproxy安裝

參考
http://www.lxweimin.com/p/edf2c8c7d83f (haproxy)
http://www.lxweimin.com/p/bd5362ab0c7e (Rabbitmq)
rabbitmq安裝在192.168.0.1、192.168.0.2、192.168.0.3 三臺(tái)機(jī)器

2. rabbitmq集群搭建
2.1 cookie文件

因?yàn)镽abbitMQ的集群是通過Erlang的集群來實(shí)現(xiàn)的,所以,要求三臺(tái)機(jī)器的/var/lib/rabbitmq/.erlang.cookie 文件內(nèi)容一致,用VI等工具將它的內(nèi)容修改為zHDCGETPYWOWREASJUAB
由于RabbitMQ在啟動(dòng)Booker時(shí)會(huì)檢查該文件的權(quán)限,必須為400,否則會(huì)報(bào)錯(cuò),所以要修改文件的權(quán)限

     chmod 400 .erlang.cookie
2.2 修改各機(jī)器hosts
 cd /etc
 cp hosts hosts0319
 vi hosts
172.16.0.104    pzs-test-1
172.16.0.105    pzs-test-2
172.16.0.106    pzs-test-3
   保證三臺(tái)機(jī)器可以互相訪問對(duì)方   
2.3 加入集群
     對(duì)主節(jié)點(diǎn)(104):
     #啟動(dòng)Broker
     rabbitmq-server –detached > nohup.out&
     #啟動(dòng)集群
     rabbitmqctl start_app
      #查看集群狀態(tài)
     rabbitmqctl cluster_status
 
     對(duì)備節(jié)點(diǎn)(102、103):
     rabbitmq-server –detached > nohup.out&
     rabbitmqctl start_app
     rabbitmqctl stop_app
     #加入集群
     rabbitmqctl join_cluster --ram rabbit@pzs-test-1
     rabbitmqctl start_app
     #查看集群狀態(tài)
     rabbitmqctl cluster_status

如果備節(jié)點(diǎn)不能加入主節(jié)點(diǎn),可以換另外兩臺(tái)機(jī)器之一(102或者103)作為主節(jié)點(diǎn),剩余作為備節(jié)點(diǎn)試試。
在三臺(tái)機(jī)器運(yùn)行以下命令:
設(shè)置成鏡像隊(duì)列

 # rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' //["^"匹配所有]
3. HaProxy配置
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 409600  #并發(fā)數(shù)
user haproxy
group haproxy
daemon

defaults
log global
#使用tcp監(jiān)聽模式
mode tcp
option tcplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 10000
timeout client 50000
timeout server 50000

listen admin_stat
#haproxy的web管理端口 8888,自行設(shè)置
bind 0.0.0.0:8888
mode http
stats refresh 30s
#haproxy web管理url,自行設(shè)置
stats uri /haproxy_stats
stats realm Haproxy\ Statistics
#haproxy web管理用戶名密碼,自行設(shè)置
stats auth admin:admin
stats hide-version

listen rabbitmq
bind 0.0.0.0:5670
##listen rabbitmq 10.10.1.53:5670
#監(jiān)聽5670端口,并轉(zhuǎn)發(fā)給兩個(gè)個(gè)節(jié)點(diǎn)的5672端口,采用輪詢策略
mode tcp
balance roundrobin
server rabbitmq-1 192.168.0.1.:5672 check inter 2000 rise 2 fall 3
server rabbitmq-2 192.168.0.2:5672 check inter 2000 rise 2 fall 3
server rabbitmq-3 192.168.0.3:5672 check inter 2000 rise 2 fall 3

啟動(dòng)haproxy

haproxy -f haproxy.cfg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。