EasyNetQ支持的最简单的消息传递模式是发布/ 订阅。这种模式是消除消费者信息提供者的绝佳方式。出版商简单地向全世界说,“这已经发生了”或“我现在有了这些信息”。它不关心是否有人正在倾听,他们可能是谁或他们所在的位置。我们可以添加和删除特定消息类型的订阅者,而无需重新配置发布者。我们还可以让许多发布商发布相同的消息,再次添加和删除发布者,而无需重新配置任何其他发布者或订阅者。

要使用EasyNetQ发布(假设您已经创建了IBus实例):

  1. 创建消息的实例,它可以是任何可序列化的.NET类型。
  2. 在IBus上调用Publish方法,将其传递给您的消息实例。

这是代码......

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

为确保邮件传递,请使用Publisher确认

一个警告

发布/订阅模式中的参与者彼此无知。出版商只是简单地向全世界说'这已发生',订阅者告诉全世界'我关心这个'。在这个模型中,没有人关心特定事件是好的。消息可能有一个订阅者,可能有200个订阅者,或者可能没有订阅者。出版商不应该在意。EasyNetQ实现了这种模式。如果您开始发布并且没有订阅者从未启动过,那么您的消息就会消失。这是设计的。

【EasyNetQ】- 发布的更多相关文章

  1. easynetq发布订阅demo实现注意事项

    最近开始在项目中使用easynetq,大概了解了下api,在网上看了下示例,结果没有一个运行成功的,一个最简单的发布订阅都没有成功.我是直接运行起来别人的示例,不应该啊,后来一直分析一直分析,最后发现 ...

  2. 【EasyNetQ】- 发布/订阅模式

    EasyNetQ支持的最简单的消息传递模式是发布/ 订阅.这种模式是消除消费者信息提供者的绝佳方式.出版商简单地向全世界说,“这已经发生了”或“我现在有了这些信息”.它不关心是否有人正在倾听,他们可能 ...

  3. EasyNetQ使用(五)【基于主题的路由,控制队列名称】

    RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息.一个主题是由点号分隔的单词列表,随消息一同发布.例如:“stock.usd.nyse” 或 “book.uk ...

  4. 10-EasyNetQ之控制队列名称

    EasyNetQ默认行为,当生成队列的名称时,使用消息类型名+subscription Id.例如:PartyInvitation 这个消息类型,命名空间为 EasyNetQ.Tests.Integr ...

  5. EasyNetQ之多态发布和订阅

    你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...

  6. 【EasyNetQ】- 发布确认

    默认的AMQP发布不是事务性的,并不保证您的消息实际到达代理.AMQP确实指定了事务发布,但是使用RabbitMQ它非常慢,我们还没有通过EasyNetQ API支持它.对于高性能保证交付,建议您使用 ...

  7. 【EasyNetQ】- 多态发布和订阅

    您可以订阅接口,然后发布该接口的实现. 我们来看一个例子.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name { get ...

  8. EasyNetQ使用(九)【非泛型的发布&订阅扩展方法,发生错误的情况 】

    自从EasyNetQ第一个版本开始,它就可以发布/订阅特定类型的消息. bus.Subscribe<MyMessage>("subscriptionId", x =&g ...

  9. EasyNetQ使用(七)【发布者确认 ,用Future Publish发布预定中事件 】

    AMQP发布消息默认情况下是非事务性的,不能确保你的消息真正送达代理.AMQP可以去指定事务性发布,但是RabbitMQ这样会非常慢,我们没有让EasyNetQ API去支持此功能.为了高效的确保投递 ...

随机推荐

  1. Angularjs基础(十)

    ng-blur 描述:规定blur 事件的行为 实例:当输入框失去焦点的(onblur)时执行表达式: <input ng-blur="count = count + 1" ...

  2. Sass 基础(七)

    Sass Maps 的函数-map-remove($map,$key),keywords($args) map-remove($map,$key) map-remove($map,$key)函数是用来 ...

  3. django+xadmin在线教育平台(十七)

    8-1 课程列表 拷贝课程列表页到template目录 创建课程相关的urls.py Mxonline2/urls.py中声明包含到course的url中: # 课程app的url配置 url(r&q ...

  4. 亚马逊VPS

    添加用户: 第一步 注册亚马逊云(已注册直接进入第二步)1.开始前需要准备好:有外币支付功能的信用卡一张(注册需要,不扣钱).Email地址.电话(手机更方便一些)2.访问 https://amazo ...

  5. navicat for MySQL连接本地数据库时报1045错误的解决方法

    navicat for MySQL 连接本地数据库出现1045错误 如下图: 说明连接mysql时数据库密码错误,需要修改密码后才可解决问题: 解决步骤如下: 1.首先打开命令行:开始->运行- ...

  6. ECSHOP和SHOPEX快递单号查询顺丰插件V8.6专版

    发布ECSHOP说明: ECSHOP快递物流单号查询插件特色 本ECSHOP快递物流单号跟踪插件提供国内外近2000家快递物流订单单号查询服务例如申通快递.顺丰快递.圆通快递.EMS快递.汇通快递.宅 ...

  7. SSM框架搭建步骤

    首先要导入相关的jar包(spring\spring-core\spring-jdbc\spring-aop\spring-context\spring-webmvc\junit\commons-la ...

  8. 修复网站漏洞对phpmyadmin防止被入侵提权的解决办法

    phpmyadmin是很多网站用来管理数据库的一个系统,尤其是mysql数据库管理的较多一些,最近phpmysql爆出漏洞,尤其是弱口令,sql注入漏洞,都会导致mysql的数据账号密码被泄露,那么如 ...

  9. Win10正式版激活

    参考:https://jingyan.baidu.com/article/47a29f2457af76c015239942.html https://jingyan.baidu.com/article ...

  10. python--基本类型之数值

    Number(数字): 数字类型创建: a = 10b = ab = 20 pint('a : 'a)pint('b : 'b) 数据类型转换: int(x,[,base]) 将 x 转换为一个整数f ...