RabbitMQ是否支持像Kafka这样的哈希分区?

时间:2020-02-14 03:44:50

标签: rabbitmq

我有一个RabbitMQ,在一个队列上订阅了多个使用者。我希望具有相同哈希键的消息每次都可以由同一使用者使用。我知道RabbitMQ的默认行为是循环遍历所有使用者并按1调度消息。

它具有与Kafka分区相同的功能吗?

谢谢

2 个答案:

答案 0 :(得分:0)

不是完全正确,而是非常接近。

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

答案 1 :(得分:0)

Rebalancer(由Jack Vanlightly分叉并进行了改进)

使用其他技术创建卡夫卡风格的消费者群体。 Rebalancer诞生于RabbitMQ对消费群体的需求。但是Rebalancer完全与技术无关,并且可以在一组参与节点之间的任何资源组之间平衡活动。 用例 使用RabbitMQ,SQS等消息传递技术创建类似于Kafka的“消费者组”。 在扩展应用程序的实例之间使用一组资源,例如文件共享,FTP,S3存储桶。 单个活动消费者/活动备份 创建以高可用性方式消耗单个资源的应用程序集群。集群领导者(协调者)消耗单个资源,而从属者(跟随者)则在领导者死亡的情况下处于空闲状态,以备不时之需。