ubuntu下搭建主/备RabbitMQ集群

主/备架构图:javascript

使用192.168.111.201:5672/5671访问haproxy,由haproxy转发请求,这是一对主/备独立服务器,并前置一台负载均衡器来处理故障转移。这是真正的无共享架构,主服务器和备用服务器之间没有协做,因此任何影响到主服务器的问题不会自动转移到备用服务器上。分隔的足够完全,能够运行不一样版本的RabbitMQ,运行在生产环境中引入新版RabbitMQ。css

 

当主节点发生故障时,让备用节点拥有主节点的全部消息可以使用共享存储架构(主服务器故障时,使用Pacemaker将RabbitMQ的IP地址转移到备用节点上并启动RabbiMQ服务器,采用共享存储上的当前元数据、内容和状态),但存在以下的问题:java

(1)       由于是共享的,因此若是因为某些缘由致使主节点故障那么一样的事情会发生在备用节点上,从而RabbitMQ服务器没法启动。redis

(2)       须要确保两台服务器拥有相同的节点名称和UID,当两处有一处不一样备用节点就没法访问主节点共享存储的信息了。后端

官网给出了传统的基于pacemaker的active/passive模式的集群,因为崩溃会在主备间复制的事实,而且在使用共享存储方法时没法在两个节点上都运行RabbitMQ,所以选择基于负载均衡器的主/备搭建。bash

RabbitMQ与HAProxy的搭建参考个人上一篇,固然使用主/备模式安装RabbitMQ集群时就不须要节点链接了。服务器

http://my.oschina.net/lzhaoqiang/blog/701618架构

 

 

接下来是配置haproxy:app

#---------------------------------------------------------------------

# Global settings

#---------------------------------------------------------------------

global

    log    127.0.0.1 local2  #[err warning info debug]

    chroot  /usr/local/haproxy

    pidfile  /var/run/haproxy.pid #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件

    maxconn  4096         #最大链接数,默认4000

    daemon  #建立1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"

nbproc 1 #后台进程数,这个要求是 daemon ,需小于cpu内核数



#---------------------------------------------------------------------

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

defaults

    mode   http   #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

    log    global     #采用全局定义的日志

    option  dontlognull   #不记录健康检查的日志信息

    option  httpclose    #每次请求完毕后主动关闭http通道

    option  tcplog

    #option  forwardfor   #若是后端服务器须要得到客户端真实ip须要配置的参数,能够从Http Header中得到客户端ip 

    option  redispatch   #serverId对应的服务器挂掉后,强制定向到其余健康的服务器

    timeout connect 10s  #default 10 second timeout if a backend is not found

    timeout client 30s  #客户端链接超时

    timeout server 30s  #服务器链接超时

timeout check   5s  #设置对后端服务器的检测超时时间,默认单位是毫秒

    maxconn     60000  #最大链接数

    retries     3    #3次链接失败就认为服务不可用,也能够经过后面设置



#---------------------------------------------------------------------

# main frontend which proxys to the backends

#---------------------------------------------------------------------

#frontend main *:5000

#    acl url_static path_beg    -i /static /images /javascript /stylesheets

#    acl url_static path_end    -i .jpg .gif .png .css .js

#

#    use_backend static if url_static #知足策略要求,则响应策略定义的backend页面

#    default_backend   app       #不知足则响应backend的默认页面



#---------------------------------------------------------------------

# static backend for serving up images, stylesheets and such

#---------------------------------------------------------------------

#backend static

#    balance     roundrobin           #负载均衡模式轮询

#   server      static 127.0.0.1:4331 check #后端服务器定义



#---------------------------------------------------------------------

# round robin balancing between the various backends

#---------------------------------------------------------------------

listen stats

        bind 0.0.0.0:8100               #监听端口

        mode http                       #http的7层模式

        option tcplog                  #采用tcp日志格式

        #log 127.0.0.1 local0 err

        maxconn 5

        stats refresh 30s               #统计页面自动刷新时间

        stats uri /stats                #统计页面url

        stats realm welcome login\ Haproxy   #统计页面密码框上提示文本

        stats auth admin:admin          #统计页面用户名和密码设置

        stats hide-version              #隐藏统计页面上HAProxy的版本信息





listen rabbitmq_master_backup_cluster

         bind 0.0.0.0:5672

         mode tcp

balance    roundrobin

server  rqmaster 192.168.111.136:5672 check inter 2000 rise 2 fall 3

server  rqbackup 192.168.111.137:5672 backup check inter 2000 rise 2 fall 3

listen rabbitmq_master_backup_cluster_ssl

bind 0.0.0.0:5672

         mode tcp

             balance    roundrobin

             server  rqmaster 192.168.111.136:5671 check inter 2000 rise 2 fall 3

             server  rqbackup 192.168.111.137:5671 backup check inter 2000 rise 2 fall 3

启动:负载均衡

sudo /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

   

能够看到rmqmaster与rmqbackup两个节点颜色不一样,主机为active UP  ,备机为backup UP,当主机宕掉时,备机就会接管服务

相关文章
相关标签/搜索