RabbitMQ+Haproxy的集群搭建

1. rabbitmq、haproxy安装

参考
http://www.jianshu.com/p/edf2c8c7d83f (haproxy)
http://www.jianshu.com/p/bd5362ab0c7e (Rabbitmq)
rabbitmq安装在192.168.0.1、192.168.0.2、192.168.0.3 三台机器

2. rabbitmq集群搭建
2.1 cookie文件

因为RabbitMQ的集群是通过Erlang的集群来实现的,所以,要求三台机器的/var/lib/rabbitmq/.erlang.cookie 文件内容一致,用VI等工具将它的内容修改为zHDCGETPYWOWREASJUAB
由于RabbitMQ在启动Booker时会检查该文件的权限,必须为400,否则会报错,所以要修改文件的权限

     chmod 400 .erlang.cookie
2.2 修改各机器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
   保证三台机器可以互相访问对方   
2.3 加入集群
     对主节点(104):
     #启动Broker
     rabbitmq-server –detached > nohup.out&
     #启动集群
     rabbitmqctl start_app
      #查看集群状态
     rabbitmqctl cluster_status
 
     对备节点(102、103):
     rabbitmq-server –detached > nohup.out&
     rabbitmqctl start_app
     rabbitmqctl stop_app
     #加入集群
     rabbitmqctl join_cluster --ram rabbit@pzs-test-1
     rabbitmqctl start_app
     #查看集群状态
     rabbitmqctl cluster_status

如果备节点不能加入主节点,可以换另外两台机器之一(102或者103)作为主节点,剩余作为备节点试试。
在三台机器运行以下命令:
设置成镜像队列

 # 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  #并发数
user haproxy
group haproxy
daemon

defaults
log global
#使用tcp监听模式
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,自行设置
bind 0.0.0.0:8888
mode http
stats refresh 30s
#haproxy web管理url,自行设置
stats uri /haproxy_stats
stats realm Haproxy\ Statistics
#haproxy web管理用户名密码,自行设置
stats auth admin:admin
stats hide-version

listen rabbitmq
bind 0.0.0.0:5670
##listen rabbitmq 10.10.1.53:5670
#监听5670端口,并转发给两个个节点的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

启动haproxy

haproxy -f haproxy.cfg

你可能感兴趣的:(RabbitMQ+Haproxy的集群搭建)