摘要: EasyNetQ.Hosepipe是EasyNetQ队列管理工具。用来取回队列中的消息并重新发布这些消息。还可以用它来检测错误队列,并重试发布消息。 用法 命令 选项 示例 1.输出队列'my_queue'中的所有消息为text文件到路径'c:temp\message'中: 1 2.insert(重 阅读全文
posted @ 2019-11-18 14:25 心冰之海 阅读(582) 评论(0) 推荐(1) 编辑
摘要: 自从EasyNetQ第一个版本开始,它就可以发布/订阅特定类型的消息。 但是,在运行期间,你怎么去发现消息类型?例如:你可能有一些系统加载外部插件,希望能订阅他们自己的消息类型。EasyNetQ为了这个目标提供了非泛型的发布和订阅方法。 只要加上这个using语句: 它将提供给你一些subscrip 阅读全文
posted @ 2019-11-18 14:23 心冰之海 阅读(571) 评论(0) 推荐(1) 编辑
摘要: RabbitMQ延迟消息插件仍然在实验阶段。你使用这个功能要自担风险。 RabbitMQ延迟消息插件为RabbitMQ增加了新的交换机类型,允许延时消息投递。 EasyNetQ为交换机通过定义一种新的日程类型:DelayedExchangeScheduler来支持这种能力。 这样允许你使用之前同样的 阅读全文
posted @ 2019-11-18 14:16 心冰之海 阅读(884) 评论(0) 推荐(1) 编辑
摘要: AMQP发布消息默认情况下是非事务性的,不能确保你的消息真正送达代理。AMQP可以去指定事务性发布,但是RabbitMQ这样会非常慢,我们没有让EasyNetQ API去支持此功能。为了高效的确保投递成功,RabbitMQ推荐使用'Publish Confirms'。简单来讲,这是AMQP的一个扩展 阅读全文
posted @ 2019-11-18 14:09 心冰之海 阅读(762) 评论(0) 推荐(1) 编辑
摘要: 你能够订阅一个接口,然后发布基于这个接口的实现。 让我们看下一个示例。我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name { get; set; } } public class Cat : IAnimal { publ 阅读全文
posted @ 2019-11-18 14:04 心冰之海 阅读(674) 评论(0) 推荐(1) 编辑
摘要: RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息。一个主题是由点号分隔的单词列表,随消息一同发布。例如:“stock.usd.nyse” 或 “book.uk.london” 或 “a.b.c”,这些可以是任何你喜欢的单词,但通常是一些消息的属性。主题字符串 阅读全文
posted @ 2019-11-18 13:41 心冰之海 阅读(839) 评论(0) 推荐(0) 编辑
摘要: EasyNetQ也支持Request/Response这种方式的消息模式。这种方式很容易在client/Server应用中执行,客户端发送一个请求到服务器,服务器然后处理请求后返回一个响应。和传统的RPC机制不同,EasyNetQ request/response操作不需要有一个名字,仅仅需要简单的 阅读全文
posted @ 2019-11-18 13:31 心冰之海 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: 一、为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET 阅读全文
posted @ 2019-11-18 11:30 心冰之海 阅读(942) 评论(0) 推荐(2) 编辑
摘要: EasyNetQ支持的最简单的消息模式是发布/订阅.这个模式是一个极好的方法用来解耦消息提供者和消费者。消息发布者只要简单的对世界说,“这里有些事发生” 或者 “我现在有一个信息”。它不关心有没有人监听,或者接收者是谁,或者接收者在那里。我们能够添加和移除特定类型的消息的订阅者,不需发布者做任何的重 阅读全文
posted @ 2019-11-18 11:23 心冰之海 阅读(3693) 评论(0) 推荐(0) 编辑
摘要: 如果你连接过关系数据库,例如SQL Server。你会发现EasyNetQ处理connections有点奇怪。和关系数据库通讯一直都是通过client开始的。Client 打开一个连接, 发出一个SQL命令,如有必要时,处理结果,然后关闭连接。一般建议是你维持一个打开的连接,时间要尽可能短,通过AP 阅读全文
posted @ 2019-11-18 11:09 心冰之海 阅读(2624) 评论(0) 推荐(0) 编辑
摘要: EasyNetQ 是一个容易使用,专门针对RabbitMQ的 .NET API。 假如你尽可能快的想去安装和运行RabbitMQ,请去看入门指南。EasyNetQ是为了提供一个尽可能简洁的适用与RabbitMQ的.NET类库。为了实现这些目标,EasyNetQ提供一种自认为你会在.NET下使用Rab 阅读全文
posted @ 2019-11-18 11:00 心冰之海 阅读(5222) 评论(1) 推荐(4) 编辑
摘要: 随着SOA、微服务、CQRS的盛行,EventBus越来越流行,上GitHub搜了一下,还是有蛮多的这类实现,老牌的有NServiceBus(收费)、MassTransit,最近的有CAP(国人写的,1.4k个Star,非常不错)、ReBus(张队长在NanoFabric中推荐的)、RawRabbi 阅读全文
posted @ 2019-11-18 10:51 心冰之海 阅读(1376) 评论(0) 推荐(0) 编辑
摘要: 一、CAP简介 下面的文字来自CAP的Wiki文档:https://github.com/dotnetcore/CAP/wiki CAP 是一个在分布式系统中(SOA,MicroService)实现事件总线及最终一致性(分布式事务)的一个开源的 C# 库,她具有轻量级,高性能,易使用等特点。我们可以 阅读全文
posted @ 2019-11-18 10:20 心冰之海 阅读(1543) 评论(0) 推荐(2) 编辑
摘要: 前言 很多同学可能对于CAP这个项目想有更一步的了解,包括她的工作原理以及适用的场景,所以博主就准备了一场直播给大家讲解了一下,这个视频是直播的一个录像。 由于我这次直播本来是没有打算对外的,所以也是没有怎么准备的,所以在直播的过程中出现了一些讲解不到位或者是意外的情况,还请大家能够谅解~。 最后, 阅读全文
posted @ 2019-11-18 09:01 心冰之海 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景下诞生的。 最初打算做这个东西是在去年(2016)年底,最初是为了解决分布式系统中的分布式事务的问题 阅读全文
posted @ 2019-11-18 08:58 心冰之海 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 前言 在上一篇文章中,我们说到了异步消息通讯,下面这篇文章呢,大部分内容是翻译来自于这篇微软的文章,所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候,异步消息和事件驱动至关重要。我们可能需要在不同的边界上下文中进行域模型的更新。我们举个例子,比如 eShop 这个项目中 阅读全文
posted @ 2019-11-18 08:51 心冰之海 阅读(727) 评论(0) 推荐(0) 编辑