8、Publish发布

  EasyNetQ支持的最简单的消息模式是发布/订阅。这个模式是一个用来解耦消息发布者和消费者的极好方式。消息发布者只要简单的对世界说,“这里有事发生” 或者 “我现在有一个信息”。它不关心有没有人监听,或者接收者是谁,或者接收者在哪里。我们能够添加和移除特定类型的消息订阅者,而不需发布者做任何的重新配置。我们也能够有多个发布者发布相同的消息,添加和删除发布者也不用其他的发布者或者订阅者做任何重新配置。

用EasyNetQ发布消息(假定你已经实例化了一个IBus实例)

  1. 创建你自己的消息实例,可以是任何可序列化的 .NET 类型。
  2. 调用IBus上的Publish方法,并传入你的消息实例。

代码如下:

var message = new MyMessage{ Text = "Hello Rabbit" };
bus.Publish(message);

 


如果为了确保消息投递成功,我们会使用Publisher Confirms方式,请看Publisher Confirms.

 

警告:

发布者和订阅者之间彼此是不知道对方的。发布者简单的对世界说“这儿有事情发生”,订阅者告诉世界“我关心这种事儿的发生”。在这个模型中
可能有一个订阅者关心这个消息,也可能有200个,或者没有人关心它。发布者不应该知道这个(交给RabbitMQ、.NET client 和 EasyNetQ就好了)。

EasyNetQ是这么实现发布/订阅模式的:假如你开始发布消息,而没有任何订阅者曾经订阅此消息,那么这个消息就简单地丢弃了。这就是我们的设计意图。

英文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Publish

posted on 2017-12-04 16:19  困兽斗  阅读(276)  评论(0编辑  收藏  举报

导航