【问题标题】:Does RabbitMQ support hash partition like Kafka?RabbitMQ 是否支持像 Kafka 这样的哈希分区?
【发布时间】:2020-05-29 20:40:27
【问题描述】:

我有一个 RabbitMQ,多个消费者订阅了一个队列。而且我希望具有相同哈希键的消息每次都可以被同一个消费者消费。我知道 RabbitMQ 的默认行为是遍历所有消费者并逐个发送消息。

有没有和Kafka partition一样的能力?

谢谢

【问题讨论】:

标签: rabbitmq


【解决方案1】:

嗯,不完全是,但非常接近。

您需要使用 RabbitMQ 一致性哈希交换类型,可通过添加 rabbitmq-consistent-hash-exchange plugin 获得。它将一致性哈希交换类型添加到 RabbitMQ。这种交换类型使用一致的散列在绑定队列之间分发消息。建议在评估此插件及其替代品之前对该概念有一个基本的了解。

【讨论】:

    【解决方案2】:

    Rebalancer(从 Jack Vanlightly 派生并改进)

    在其他技术中创建 Kafka 风格的消费者群体。 Rebalancer 的诞生源于对 RabbitMQ 消费者组的需求。但是 Rebalancer 完全与技术无关,它将在一组参与节点上平衡任何资源组的活动。 用例 使用 RabbitMQ、SQS 等消息传递技术创建类似于 Kafka 的“消费者组”。 在横向扩展应用程序的实例之间使用一组资源,例如文件共享、FTP、S3 存储桶。 单个活动消费者/活动备份 创建一个以高可用方式消耗单个资源的应用程序集群。集群领导者(Coordinator)消耗单一资源,而从属者(Followers)保持空闲备用,以防领导者死亡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2011-10-16
      • 2018-03-18
      • 2010-11-20
      相关资源
      最近更新 更多