gpt4 book ai didi

c# - Rabbitmq:exchange->routingkey->queue命名结构

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:39 25 4
gpt4 key购买 nike

我正在使用直接交换,因为我希望一份工作交给一个消费者。

不同的消费者群体会消费不同的工作。可以说我的应用程序称为“foo”。然后我有工作

  • 酒吧1
  • 酒吧2
  • bar3....

将有一组单独的消费者处理“bar1”作业,然后另一组消费者处理“bar2”等

我试图找出任何特定的命名/路由结构是否有好处,但没有找到任何指向某种方式的东西

问题 1)我应该使用多个交易所名称吗交流:

  • exc_bar1
  • exc_bar2
  • exc_bar3

或者最好是单次交换交换:

  • exc_foo

然后使用路由键发送到正确的消费者队列路由键

  • rk_bar1
  • rk_bar2
  • rk_bar3

无论哪种方式,我都无法找到任何信息,所以我认为这并不重要,但我认为最好问一问,以防万一我遗漏了什么,而这确实很重要。


背景信息

以防万一它是相关的

生产者是一个python webapp,使用rabbitpy库消费者是使用默认 rabbitmq 客户端库的 c# 应用程序

生产者可以设置 * 交易所名称 * 路由键名

消费者可以设置 * 交易所名称 * 路由键名 * 队列名称

最佳答案

对于这种情况,我建议使用一个exchange 来包含单个应用程序的所有作业,然后使用一个queue 来表示每个作业类型,这然后可以有多个消费者(然后它们将能够以循环方式处理来自该队列的消息)。

然后可以使用路由键来指导消费者他们正在处理的作业

只有一个交换器作为逻辑分组(即在应用程序级别)是有意义的,并且可以简化 RabbitMQ 中的管理/管理/监控。如果您有新的作业类型,您只需创建一个新的队列和绑定(bind)并更改路由键,而不是必须创建一个新的交换然后还必须创建一个新的队列和绑定(bind)。

如果稍后您有一个完全不同的应用程序,那么我会说是时候为它创建一个新的 exchange,然后遵循我上面提到的相同的通用模型(假设它的行为与高水平)。

我认为 Routing tutorialRabbitMQ 网站上可能最适合您的情况,如果您正在寻找更多详细信息(下面的链接适用于 Python,但他们有一个适用于 C# 还有)。

关于c# - Rabbitmq:exchange->routingkey->queue命名结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24714378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com