面试题:怎么保证MQ的高可用

怎么保证MQ的高可用

  • RocketMQ 采用的双主双从同步写的方法。

    • 每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:
      • 优点:数据与服务都无单点故障,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高;
      • 缺点:性能比异步复制模式略低(大约低10%左右),发送单个消息的RT会略高,且一些版本在主节点宕机后,备机不能自动切换为主机。
    • 1.生产者通过Name Server发现Broker
    • 2.生产者发送队列消息到2个Broker主节点
    • 3.Broker主节点分别和各自从节点同步数据
    • 4.消费者从主或者从节点订阅消息

  • 镜像队列模式

    镜像队列也被称为Mirror队列,主要是用来保证mq消息的可靠性的,他通过消息复制的方式能够保证我们的消息100%不丢失,同时该集群模式也是企业中使用最多的模式。

    • 1.在多台机器上分别启动RabbitMQ实例
    • 多个实例之间可以相互通信
    • 3.每次生产者写消息到queue的时候,都会自动把消息同步到多个实例的queue上。每个Rabbitmq节点都有queue的消息数据和元数据。
    • 4.某一个节点宕机,其他节点依然保存完整数据,不影响客户端消费。

posted @ 2020-12-19 19:52  天宇轩-王  阅读(184)  评论(0编辑  收藏  举报