随笔分类 -  EasyNetQ手册翻译

1、EasyNetQ手册翻译目录
摘要:EasyNetQ是一个简单的用于RabbitMQ .NET Client 的API。首先要安装RabbitMQ 现在您应该能够登录RabbitMQ管理Web界面 URL: http://localhost:15672/有个小例子你可以下载后测试测试: https://github.com/mikeh 阅读全文

posted @ 2017-12-08 17:24 困兽斗 编辑

26、Using Alternative DI Containers 替换DI容器
摘要:EasyNetQ是由独立组件的集合组成的。在内部,它使用了一个称为DefaultServiceProvider的微型内部DI(IoC)容器(EasyNetQ作者自己写的一个)。如果你看一下静态RabbitHutch类的代码(你用来创建IBus实例的那个),您将看到它只是创建了一个新的DefaultS 阅读全文

posted @ 2017-12-08 11:11 困兽斗 编辑

25、Replacing EasyNetQ Components 替换EasyNetQ组件
摘要:EasyNetQ是一个由小组件组成的库。当你写如下代码: 静态方法CreateBus通过IoC容器组装这些组件,CreateBus的一个重载允许你访问组件注册,这样您就可以提供您自己版本的EasyNetQ依赖项。重载方法原型如下: IServiceRegister接口声明了一个方法: 因此,要注册你 阅读全文

posted @ 2017-12-08 10:11 困兽斗 编辑

24、Wiring up EasyNetQ with TopShelf and Windsor 让EasyNetQ、TopShelf 和Windsor 一起使用
摘要:围绕消息总线架构一个系统需要编写许多小而集中的组件,这些组件趴在总线上等待它们所关心的消息。这些应用程序最好是写成window服务,而实现window服务的最好方式是使用 TopShelf开源框架,用TopShelf写window服务超简单。这个开源库脱胎于优秀的MassTransit 项目。你可以 阅读全文

posted @ 2017-12-07 17:30 困兽斗 编辑

23、Cluster Support 集群支持
摘要:EasyNetQ支持RabbitMQ集群,而不需要部署负载平衡器。 只需在连接字符串中列出集群的节点: 在这个示例中,我们在一台机器(主机名ubuntu)上安装了一个集群,节点1在端口5672上,节点2在端口5673上。当CreateBus语句执行时EasyNetQ 将会尝试连接到第一个节点 (ub 阅读全文

posted @ 2017-12-07 15:34 困兽斗 编辑

22、The Advanced API 高级API
摘要:EasyNetQ的使命是为RabbitMQ消息传递提供最简单的API。核心IBus接口有意避免暴露AMQP概念:如交换器、绑定、队列。相反,EasyNetQ实现一个默认基于消息的class type的“交换器+绑定+队列”拓扑结构。 有些场景下,需要能配置自定义的“交换器+绑定+队列”拓扑。Easy 阅读全文

posted @ 2017-12-06 17:44 困兽斗 编辑

21、Re Submitting Error Messages With EasyNetQ.Hosepipe 使用Hosepipe重新提交错误消息
摘要:EasyNetQ.Hosepipe是EasyNetQ队列管理工具。用来取回队列中的消息并重新发布这些消息。还可以用它来检测错误队列,并重试发布消息。 用法 Command命令 选项 示例 注意事项 'dump'和'err'命令都不会删除队列中的消息。他们只是简单的从队列拿出消息,复制这些消息到指定目 阅读全文

posted @ 2017-12-06 17:36 困兽斗 编辑

20、Error Conditions 错误情况
摘要:现在让我们看看在消息系统中可能发生的各种错误,看下EasyNetQ如何处理它们。 你的订阅者挂了 假设你写了一个windows 服务程序来订阅NewCustomerMessage消息。如果这个服务程序挂了会发生什么呢? 为了性能,EasyNetQ为订阅实现了一个内部使用的内存消息队列。EasyNet 阅读全文

posted @ 2017-12-06 16:43 困兽斗 编辑

19、非泛型发布&订阅扩展方法
摘要:自从EasyNetQ第一个版本开始,它就可以发布/订阅指定类型的消息。 bus.Subscribe<MyMessage>("subscriptionId", x => Console.WriteLine(x.Text)); bus.Publish<MyMessage>(theMessage); 但有 阅读全文

posted @ 2017-12-06 12:59 困兽斗 编辑

18、Auto Subscriber 自动订阅
摘要:EasyNetQ v0.7.1.30版本出了一个简单的AutoSubscriber。你能够用它很容易地扫描指定程序集中实现了IConsume 或 IConsumeAsync接口的类,然后让这些消费者订阅到你的bus上。IConsume的实现将使用bus的Subscribe方法,同时IConsumeA 阅读全文

posted @ 2017-12-06 11:36 困兽斗 编辑

17B、Support for Delayed Messages Plugin 对延迟消息插件的支持
摘要:RabbitMQ延迟消息插件仍然在实验阶段。你使用这个功能要自担风险。 RabbitMQ延迟消息插件为RabbitMQ增加了新的交换器类型,允许延时消息投递。 EasyNetQ定义了新的日程类型DelayedExchangeScheduler来支持对该交换器的使用。 这样允许你像以前一样使用Futu 阅读全文

posted @ 2017-12-06 11:11 困兽斗 编辑

17、Scheduling Events with Future Publish 用Future Publish发布日程事件
摘要:许多业务流程需要在将来的某个日期安排事件。例如,在初次与客户接触后,我们希望把未来某个时间电话回访客户列入日程。EasyNetQ可以用它的Future Publish帮你实现这个功能。举例:这里我们使用FuturePublish() 扩展方法把一个月后的电话回访列入日程。注意:FuturePubli 阅读全文

posted @ 2017-12-05 17:33 困兽斗 编辑

16、Publisher Confirms 发布者确认
摘要:AMQP发布消息默认情况下是非事务性的,也不能确保你的消息真正送达代理服务器(RabbitMQ)。尽管AMQP也可以指定事务性发布,但是在RabbitMQ上这个传输速度非常慢(所以RabbitMQ不推荐使用事务性发布,而是提出'Publish Confirms')。所以我们也没有让EasyNetQ 阅读全文

posted @ 2017-12-05 17:18 困兽斗 编辑

15、Versioning Messages 版本化消息
摘要:为了能够支持消息的版本控制,你需要确保这个必要的组件已配置。最简单的实现是这样的: 一旦消息版本功能启动,你必须显式地选择你想要被版本化的任何消息。(显式发布,显式订阅) 用处是如果你发布者的代码更新到新版本消息如MyMessageV2,旧的订阅者代码仍然把消息解析(反序列化)为MyMessage对 阅读全文

posted @ 2017-12-05 16:44 困兽斗 编辑

14、Polymorphic Publish and Subscribe 多态发布和订阅
摘要:你能够订阅一个接口,然后发布基于这个接口的实现。 让我们看一个示例。我有一个接口IAnimal和两个实现Cat和Dog: 我能够订阅IAnimal接口,接收Cat和Dog这个两个类的消息: 让我们发布Cat和Dog: 注意:必须显式指定我要发布IAnimal接口的实例对象。EasyNetQ在发布和订 阅读全文

posted @ 2017-12-05 16:05 困兽斗 编辑

13、Controlling Queue names 控制队列名称
摘要:EasyNetQ生成队列名称默认使用:消息类型名 + subscription_Id。例如:MyMessage这个消息类型的命名空间为Liksoft.Model,生成的程序集文件名为Models.dll,那么在RabbitMQ生成的队列名称为: Liksoft.Model.MyMessage:Mod 阅读全文

posted @ 2017-12-05 15:55 困兽斗 编辑

12、Topic Based Routing 主题路由
摘要:RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件过滤消息。一个主题是由点句号分隔的单词列表,随消息一同发布。例如:“stock.usd.nyse” 或 "book.uk.london" 或 "a.b.c",这些可以是任何你喜欢的单词,但通常是一些消息的属性。主题字符串 阅读全文

posted @ 2017-12-05 15:11 困兽斗 编辑

11、Send Receive 发送接收
摘要:Publish/Subsrcibe和Request/Response模式是位置透明的,在这两个模式中,你不需要去指定消息的消费者具体所处的位置。但Send/Receive模式是专门为通过指定队列名进行通信而设计的。它不限制什么样的消息类型才能发送到这个队列。这意味着,你能够发送不同类型的消息到同一个 阅读全文

posted @ 2017-12-05 14:09 困兽斗 编辑

10、Request Response 请求响应
摘要:EasyNetQ也支持Request/Response消息模式。这种模式很容易实现Client/Server应用,即客户端发送一个请求给服务器,服务器处理请求然后返回一个响应。和传统的RPC(远程过程调用,如WebService)机制不同,EasyNetQ request/response操作不需要 阅读全文

posted @ 2017-12-05 11:16 困兽斗 编辑

9、Subscribe订阅
摘要:一个EasyNetQ订阅者订阅一种消息类型(消息类的.NET 类型)。一旦通过调用Subscribe方法对一个类型建立了订阅,一个持久化的队列就会在RabbitMQ broker代理服务器上被创建,这个类型的任何消息都会被发送到这个队列上。订阅者无论什么时候连接上,RabbitMQ都会把消息从队列中 阅读全文

posted @ 2017-12-04 17:50 困兽斗 编辑

导航