rabbitmq 主备模式部署_ubuntu下搭建主/备RabbitMQ集群

本文介绍了如何在Ubuntu系统中部署RabbitMQ的主备模式,利用HAProxy作为负载均衡器进行故障转移。当主节点故障时,备用节点通过共享存储获取主节点状态并接管服务。同时,文章提到了共享存储架构的潜在问题,并提供了haproxy的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主/备架构图:

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

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

(1)       因为是共享的,所以如果由于某些原因导致主节点故障那么同样的事情会发生在备用节点上,从而RabbitMQ服务器无法启动。

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

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

RabbitMQ与HAProxy的搭建参考我的上一篇,当然使用主/备模式安装RabbitMQ集群时就不需要节点连接了。

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

接下来是配置haproxy:

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

# 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,当主机宕掉时,备机就会接管服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值