【问题标题】:Publish/Subscribe samples with RabbitMQ in .NET [closed]在 .NET 中使用 RabbitMQ 发布/订阅示例 [关闭]
【发布时间】:2011-08-22 12:42:21
【问题描述】:

我已经构建了这个示例:Getting Started With RabbitMQ in .net,但制作了 2 个程序:

  • 一个发布者
  • 一个订阅者

我使用BasicPublish 发布并使用BasicAck 收听,如示例所示。如果我在来自发布者的每条“发送消息”上运行一个发布者和几个订阅者,那么只有一个订阅者会收到它。因此,发布者向订阅者发送消息时存在某种顺序(当订阅者开始时),我想向所有订阅者发送一条消息。那个样本有什么问题?您是否可以通过 RabbitMq 提供发布者/订阅者消息交换的工作示例?

【问题讨论】:

    标签: c# rabbitmq publish-subscribe messagebroker


    【解决方案1】:

    您链接到的示例使用没有交换的简单排队,这确保只有一个消费者将处理消息。要在 RabbitMQ 中支持发布/订阅,您需要首先创建一个 Exchange,然后让每个订阅者在该 Exchange 上绑定一个队列。生产者然后将消息发送到 Exchange,Exchange 会将消息发布到已绑定到它的每个 Queue(至少使用简单的 Fanout 交换类型。可以通过 Direct 和 Topic 交换来实现路由。)

    有关 Java 示例(可以很容易地转换为 C#),请参阅 here

    编辑: 更新的.Net版本可以找到here

    【讨论】:

    • 刚刚将 java 代码更改为 c# 就可以了。谢谢。
    【解决方案2】:

    我已经添加了一个关于这个Getting Started With RabbitMQ in .net的新教程

    【讨论】:

    • 谢谢 - 到目前为止,您的示例是我见过的唯一一个在 .NET 中进行异步订阅的示例。在委托上调用 Invoke 似乎“复古” - 有更好的方法吗?
    【解决方案3】:

    现在也有一些official sources

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多