12 2017 档案

第三章 运行和管理Rabbit
摘要:一、 二、 三、 阅读全文

posted @ 2017-12-13 14:01 困兽斗

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 困兽斗

第二章 理解消息通信
摘要:AMQP消息能以1对多的广播方式进行路由,也可以选择1对1的方式路由。应用程序(客户端)可以发送和接收包裹(数据),而数据所在的服务器也可以发送和接收。RabbitMQ在应用程序和服务器之间扮演着路由器的角色。所以当应用程序连接到RabbitMQ时,它就必须做个决定:我是发送还是接收呢?或者从AMQ 阅读全文

posted @ 2017-12-05 21:11 困兽斗

第一章 天降奇兵
摘要:一、JMS和AMQP 随着商业消息队列的发展,这些供应商只顾解决不同应用之间消息互通的问题,而不顾和其他消息队列产品进行互通的问题。导致供应商壁垒。 JMS即Java Message Service JMS提供一个公共Java API和多个针对不同消息队列产品的驱动。它隐藏这些消息队列产品的具体接口 阅读全文

posted @ 2017-12-05 20:59 困兽斗

目录和序
摘要:译者序 消息队列提供一个异步通信协议,消息的发送者不用一直等待,直到消息被成功处理;而是立即返回。消息被暂存于队列当中,对消息感兴趣的消费者会订阅消息并处理它们。 消息队列的使用场景: 1.系统集成 与遗留系统或者第三方维护的系统通讯。 2.高并发 3.高复用,高扩展 使用消息队列绝不是“杀鸡用牛刀 阅读全文

posted @ 2017-12-05 20:13 困兽斗

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 困兽斗

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

posted @ 2017-12-04 16:19 困兽斗

7、Logging日志
摘要:EasyNetQ提供了一个日志接口 IEasyNetQLogger: Logging 默认是关闭的,NullLogger作为IEasyNetQLogger的默认实现被注册进去。 有一个控制台Logger(ConsoleLogger)可以用来做测试或调试。但是,没人会在生产环境系统中使用它。调试级别的 阅读全文

posted @ 2017-12-04 16:00 困兽斗

6、Connecting with SSL 在EasyNetQ上使用SSL连接
摘要:EasyNetQ可以通过SSL连接。 首先,你必须仔细依据https://www.rabbitmq.com/ssl.html文章中的步骤。我花费了很多时间尝试让openssl这部分能运作起来,然后为了让他按我的需要去运作而不仅仅只是一个demo,我又花费了很多时间。 第一次通过SSL让EasyNet 阅读全文

posted @ 2017-12-04 15:51 困兽斗

5、Connecting to RabbitMQ连接到RabbitMQ服务器
摘要:如果你熟悉关系数据库的连接,例如SQL Server连接。你会发现EasyNetQ的connections有点奇怪。关系数据库连接流程一般是:Client 打开一个连接, 发出一个SQL命令,如有必要处理结果,然后立即关闭连接。一般的建议是:在尽可能短的时间内保持连接的打开状态(用完即关),并使用连 阅读全文

posted @ 2017-12-04 15:11 困兽斗

3、A Note on Versioning版本控制 —— 4、Installing EasyNetQ如何安装
摘要:3、版本 EasyNetQ是Beta版(测试版)软件。许多公司已经成功地在生产环境使用了它,但是要注意它仍在开发中,内部和公共的API都会有频繁的变化。您应该测试每个更新。开发人员遵循以下版本控制方案: <major>.<minor>.<patch>.<build-number> 即 主版本号.次版 阅读全文

posted @ 2017-12-04 14:31 困兽斗

2、Introduction介绍
摘要:1、Quick Start 快速上手 (详见链接) 2、Introduction 介绍 EasyNetQ是一个简单易用,独具风格的RabbitMQ .NET客户端 API,如果你仅仅希望快速上手简单使用,那么你看看Quick Start就好了。 EasyNetQ开发的目的是提供一个简洁的.NET的R 阅读全文

posted @ 2017-12-04 11:09 困兽斗

导航