繁体   English   中英

消费者不通过在RabbitMQ中将交换名称作为队列名称来传递分片队列中的消息

[英]Consumer not picking messages from sharded queues by passing exchange name as queue name in RabbitMQ

我在用户端面临RabbitMQ分片的问题。 我正在使用来自nuget的最新稳定的RabbitMQ .Net客户端。 我遍历了各种文档和会议视频,并且知道必须将分片Exchange名称作为队列名称传递给使用者。 通过这种方式, 使用者已连接,但仅从第一个分片队列中获取数据。 如果我有5个分片,那么它不是从第一个中获取的。

如果我尝试使用RabbitMQ随机创建的确切队列名称,则使用者将成功获取消息。 但是正如RabbitMQ所说的那样,分片是在交换级别上完成的 ……并且…… 如果您有一个名为images的分片 ,则可以直接从名为images的队列中使用。 因此,我将分片交换名称传递给使用者,但它仅使用第一队列数据。

启用分片-
rabbitmq-plugins enable rabbitmq_sharding
使用RabbitMQ管理界面创建分片-
1.创建了名为HelloShard的 x-modulus-hash类型的交换
2.通过为此模式创建交换策略来启用分片: ^ HelloShard $ ,参数: shards-per-node = 5, routing-key = 12345

我希望一位使用者从所有分片队列中提取消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM