Rabbit MQ ——集群高可用(四)

 

一,高可用、集群模式

 

1. 主备模式(Warren)

这种方式实现起来非常简单,如果并发和数据量不高的情况下,这种模式是非常适合的。

这种模式并非是多个服务实例提供服务,只有主节点服务提供服务,从节点不对外提示服务支持,当主节点挂掉时会将从节点升级为主节点对外提供服务。搭建这种模式需要Haproxy组件的支持,来检测和完成主备切换的工作。

 

 

2.远程模式(Shovel)

这种模式可以实现多活的一种模式,所谓Shove就是我们可以把消息进行不同数据中心的复制,我们可以跨地域的让两个mq集群互联。这种模式是Rabittmq 早期的一个模式。目前用的不是很多。

 

 

3.镜像模式(Mirror)

这是一种经典的集群模式,可以保证100%数据不丢失,在实际工作中也是用的最多的。实现起来也是非常简单。这般这种模式需要3个节点来完成。主要就是将队列中的消息进行水平复制。

如图:

 

4.多活模式

这种模式也是实现异地数据复制的主流模式,因为Shovel 模式配置比较复杂,所以一般实现异地集群都是使用这种双活或者多活模型来实现。这种模型需要依赖Rabbitmq的Federation 插件,可以实现持续的可选的AMQP数据通信,使部分的队列消息复制共享,配置和应用也非常简单。多套集群之前利用AMQP实现数据复制的机制。

Fedration是RabbitMq异步消息通信的插件,一般情况下我们都只配置两个集群中两个单点队列之间的复制,每个集群内部自己会完成多节点的同步(镜像队列来完成)。他是cluster 或 Brokers之前传输消息的高性能插件。

使用Federation要安装:

rabbitmq-plugins enable rabbitmq_federation

rabbitmq-plugins enable rabbitmq_federation_management

注: 当你在一个cluster中使用federation插件时,所有在集群中的nodes都需要安装federation。

 

 

 

二、Rabbit mq关键配置参数

tpc_listerners 设置rabbitmq 的监听端口。默认5672.

disk_free_limit 磁盘低水位线,若磁盘空间低于指定值则会自己停止接收数据,默认为{mem_relation,1.0},即与内存相关联1:1

vm_memory_high_watermark 设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。

集群节点模式:Disk为磁盘模式存储 / Ram为内存模式存储。

hipe_compile 将部分rabbitmq代码用High Performance Erlang compiler 编译,可提升性能,该参数是实验性,若出现 erlang vm segfaults ,应关掉。

force_fine_statistics 该参数以属于rabbitmq_management,若为true则进行精细的统计,会影响性能。

 

配置文件位于:/etc/rabbitmq 目录下(自己创建)

环境变量配置文件 : rabbitmq-env.con

配置信息配置文件:rabbitmq.config (也可以不创建和配置,修改)

rabbitmq-env.conf关键参数配置:

RABBITMQ_NODE_IP_ADDRESS=本机IP地址

RABBITMQ_NODE_PORT=5672

RABBITMQ_LOG_BASE=/var/lib/rabbitmq/log

RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia  数据存储位置

详细配置参见:http://www.rabbitmq.com/configure.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值