c# - 在 .NET 中使用 RabbitMQ 发布/订阅示例

标签 c# rabbitmq publish-subscribe messagebroker

<分区>

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

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

我正在使用 BasicPublish 进行发布,并使用 BasicAck 进行收听,如示例中所示。如果我在发布者的每条“发送消息”上运行一个发布者和多个订阅者——只有一个订阅者收到它。因此,发布者向订阅者发送消息的顺序(订阅者启动时)是这样的,我想向所有订阅者发送一条消息。那个样本有什么问题?您是否可以提供通过 RabbitMq 进行发布者/订阅者消息交换的工作示例?

最佳答案

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

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

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

关于c# - 在 .NET 中使用 RabbitMQ 发布/订阅示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951477/

相关文章:

spring - 如何在 Spring Cloud AWS SQS 中以编程方式设置消息处理程序?

ruby-on-rails - 使用amqp确认从rabbitmq队列接收到的消息

.net - NServiceBus:找不到(消息)的元数据

c# - 有什么方法可以在执行之后/期间延迟执行针对 IQueryable<T> 的委托(delegate)?

c# - TCP 监听器只接收第一条消息

c# - 使用Session验证用户名和密码

javascript - 从内存中 Meteor 的 Minimongo 中删除已传递的消息

C# 正则表达式优化

spring - 如何在 Spring xml 配置中使用 JNDI 变量设置 rabbitmq 连接属性?

go - Google Pub/Sub 的 RetryPolicy 中配置的指数退避如何工作?