开发者社区 > 云原生 > 云消息队列 > 正文

请问消息队列RabbitMQ版是否有镜像队列功能,在文档中没看到的? 我们目前想做一个全球多节点的应

请问消息队列RabbitMQ版是否有镜像队列功能,在文档中没看到的?

我们目前想做一个全球多节点的应用,为了能保证各节点网络可用,打算通过多个地区部署多个MQ实例来进行通信,我看镜像队列能实现多个实例的数据同步,我想知道这个消息队列RabbitMQ能做到多个实例数据同步吗?

展开
收起
巴拉巴拉巴拉 2023-03-13 17:01:33 702 0
3 条回答
写回答
取消 提交回答
  • 这个暂时不支持哈。

    消息路由功能可以跨实例跨地域同步/复制消息。但由于国家合规问题,现在不支持跨境传输数据。只要涉及跨境传输数据,都需要用户自己购买CEN并报备后,使用报备后的CEN链路自己同步数据。

    而且你如果自建使用镜像队列多节点来同步消息的方案,这种网络情况下,估计大概率会有脑裂问题。跨境同步的商业侧的解决方案,我们后续会用EventBridge来支持。但前提是您必须有跨境并且向国家报备过的CEN 网络通路。

    此答案来自钉钉群“RabbitMQ&AMQP 产品群"

    2023-03-13 18:30:06
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    是的,RabbitMQ版提供了镜像队列功能。RabbitMQ镜像队列是指将生产者发布的消息同步到多个队列副本上,从而提高系统故障恢复和消息可靠性。如果默认队列出现故障,镜像队列能够让每个出现故障的节点上都有一个备份队列跨机房备份。此外,通过对每个存储消息的队列进行分散和副本复制,镜像队列可以提高消息处理的并发性、吞吐量和稳定性。

    在RabbitMQ中,要创建一个镜像队列,需要在队列声明时设置x-queue-mode参数为lazy,并在arguments参数中指定ha-modeall,例如:

    channel.queue_declare(queue='my_queue', durable=True, 
                          arguments={'x-queue-mode': 'lazy',
                                     'ha-mode': 'all'})
    

    这样就会创建一个指定节点的镜像队列。

    需要注意的是,RabbitMQ镜像队列需要相应的配置和硬件支持,适合用于高可用和低延迟的生产环境。

    2023-03-13 17:11:02
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    “在3.8 以前的版本,RabbitMQ 通过镜像队列(Classic Queue Mirroring)来提供高可用性。但镜像队列存在很大的局限性,在 3.8 之后的版本 RabbitMQ 推出了 Quorum queues 来替代镜像队列,在之后的版本中镜像队列将被移除。镜像队列通过将一个队列镜像(消息广播)到其他节点的方式来提升消息的高可用性。

    2023-03-13 17:11:02
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载