我有一个RabbitMQ,在一个队列上订阅了多个使用者。我希望具有相同哈希键的消息每次都可以由同一使用者使用。我知道RabbitMQ的默认行为是循环遍历所有使用者并按1调度消息。
它具有与Kafka分区相同的功能吗?
谢谢
答案 0 :(得分:0)
不是完全正确,而是非常接近。
您需要使用RabbitMQ一致性哈希交换类型,该类型可通过添加rabbitmq-consistent-hash-exchange plugin获得。它将一致性哈希交换类型添加到RabbitMQ。此交换类型使用一致的哈希来在绑定的队列之间分配消息。建议在评估此插件及其替代产品之前对概念有基本的了解。
答案 1 :(得分:0)
Rebalancer(由Jack Vanlightly分叉并进行了改进)
使用其他技术创建卡夫卡风格的消费者群体。 Rebalancer诞生于RabbitMQ对消费群体的需求。但是Rebalancer完全与技术无关,并且可以在一组参与节点之间的任何资源组之间平衡活动。 用例 使用RabbitMQ,SQS等消息传递技术创建类似于Kafka的“消费者组”。 在扩展应用程序的实例之间使用一组资源,例如文件共享,FTP,S3存储桶。 单个活动消费者/活动备份 创建以高可用性方式消耗单个资源的应用程序集群。集群领导者(协调者)消耗单个资源,而从属者(跟随者)则在领导者死亡的情况下处于空闲状态,以备不时之需。