怎么保证MQ的高可用
-
RocketMQ 采用的双主双从同步写的方法。
- 每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:
- 优点:数据与服务都无单点故障,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高;
- 缺点:性能比异步复制模式略低(大约低10%左右),发送单个消息的RT会略高,且一些版本在主节点宕机后,备机不能自动切换为主机。
- 1.生产者通过Name Server发现Broker
- 2.生产者发送队列消息到2个Broker主节点
- 3.Broker主节点分别和各自从节点同步数据
- 4.消费者从主或者从节点订阅消息
- 每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:
-
镜像队列模式
镜像队列也被称为Mirror队列,主要是用来保证mq消息的可靠性的,他通过消息复制的方式能够保证我们的消息100%不丢失,同时该集群模式也是企业中使用最多的模式。
- 1.在多台机器上分别启动RabbitMQ实例
- 多个实例之间可以相互通信
- 3.每次生产者写消息到queue的时候,都会自动把消息同步到多个实例的queue上。每个Rabbitmq节点都有queue的消息数据和元数据。
- 4.某一个节点宕机,其他节点依然保存完整数据,不影响客户端消费。