.NET 平台上的 service bus 应用 NServiceBus 刚刚推出了 4.0 版本。迄今为止, MSMQ 一直是它的主要队列机制,而这次 NServiceBus 此基础上加入了对 RabbitMQ 和 ActiveMQ 的支持。按照 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 许可。
评论