NServiceBus 4.0 加入了对 RabbitMQ 和 ActiveMQ 的支持

  • Jan Stenberg
  • 邵思华

2013 年 7 月 15 日

话题:SOA架构

.NET 平台上的service bus应用NServiceBus刚刚推出了4.0 版本。迄今为止,MSMQ一直是它的主要队列机制,而这次 NServiceBus 此基础上加入了对RabbitMQActiveMQ的支持。按照 NServiceBus 的创始人Udi Dahan的说法,这个版本算得上是历来最大的一次更新了,它包括了以下方面的改进:

  • 使用 RabbitMQ 或 ActiveMQ 时,在线路级(Wire level)完全遵从高级消息队列协议(AMQP)。
  • 针对那些偏好于将所有数据存储在中央式数据库的组织,支持使用数据库表作为队列。
  • 极大地改善了 MSMQ 的传输性能。
  • 使用“内存中(In Memory)Bus”对事件进行同步处理,比方说:你可以用以在同一个事务中实现领域事件模式
  • 全新的吞吐性能计数器及更新后的性能计数器。
  • 加入了内置版本的RavenDB(一个文档数据库,默认使用它作为内部存储),当前版本为版本 2。
  • 简化了 NHibernate 配置及传输设置。
  • 基本许可(Basic license)现在支持多线程了。

用户可以远程连接到某台预装了 NServiceBus 的云端机器,利用全新的动手实验环境测试 NServiceBus 的功能,而无需任何安装。另外还有一个可横向扩展(scale-out)的实验环境,可以创建用以创建包括 4 台机器的 NServiceBus 解决方案。

该团队还发布了两个工具的 beta 版本,这两个工具都已集成到 Visual Studio 中:

  • ServiceMatrix,一个建模工具,允许开发者在设计消息驱动的面向服务方案时,能够在一个更高的抽象层面开展工作。这个工具为系统提供了一个逻辑视图,以显示诸如服务所暴露的契约、消息的去向,以及这些消息所产生的事件等内容。
  • ServiceInsight,一个调试工具,用以将队列及进程之间的消息传递以可视化的方式进行管理,没有这个工具将很难在异步系统中完成同样的任务。

NServiceBus 本身基于队列化的消息传递,它为基于面向服务和事件驱动架构的系统提供了构建块,在这种架构中的一些服务会发布业务事件,而其它服务将利用发布 / 订阅模式以及一个基于队列的传输机制来订阅这些事件。

NServiceBus 是一个开源产品,使用基于RPL 1.5 许可的商业许可协议。它的潜在竞争者之一是MassTransit,使用Apache 2.0许可。

查看英文原文:http://www.infoq.com/news/2013/07/nservicebus-4-0

SOA架构