作为NServiceBus的原始作者,我可能对自己的技术有些偏见,但是我会尽力保持这种平衡。
运输支持
NServiceBus和MassTransit都支持RabbitMQ和Azure Service Bus,但NServiceBus还支持:
关于RabbitMQ的主题
可以说NServiceBus对RabbitMQ具有更强的支持-例如,在其延迟交付功能中,而Mass Transit指出其“插件仍被认为是实验性的。它受MassTransit支持,但除插件外,我们不能保证其他任何事情保证自己。”
我们还与RabbitMQ团队紧密合作,为.net SDK做出了贡献,从而使整个生态系统受益。
谈到Azure Service Bus
我们与Azure Service Bus团队的协作水平更高,.net核心SDK拥有70多个PR。
使用NServiceBus时,您将从这些知识的全部深度中受益。
工装
这是最大的区别。
构建完备的系统后,了解所有不同的运动部件之间如何相互交流变得非常重要。除了通过Diagnostic Source与诊断工具到Application Insights或Open Trace之类的第三方工具进行小规模集成之外,MassTransit在此领域中没有很多。
NServiceBus周围的服务平台还有很多,使您能够使用ServiceInsight查看所有端点上的序列图:
您还可以获取所有端点和消息的逻辑视图:
本质上,您可以获得有关系统体系结构的实时文档。
管理与监控
这是MassTransit所没有的其他领域。当您要与之集成的第三方系统不可用并且系统中的一堆消息最终出现在错误队列中时,MassTransit唯一的解决方案是让您稍后使用RabbitMQ Shovel插件将这些消息手动移回。
围绕NServiceBus的服务平台包括对该错误队列的监视,图形工具以查看那些错误的原因,以及重播这些失败消息的组并查看它们是否已在简单的Web应用程序中被成功处理的能力。称为ServicePulse。
还具有定期运行的健康检查的可视化功能,可以在消息开始失败之前提供问题的早期警告。
最后,平台中提供了性能监控:
当涉及到生产支持时,您确实可以获得完整的软件包。
长期支持和向后兼容
尽管大众运输公司向来擅长帮助在Gitter或Google网上论坛上有疑问的人,但我认为他们不提供较早版本的错误修复。当您的生产系统已经使用了几年,而您不能一直升级所有产品时,这便变得很重要。
使用NServiceBus,支持包括:
- 每个主要版本2年以上
- 额外2年的扩展支持
- 保证对关键问题的响应时间
- 24x7全天候可用
咨询与培训
从离线角度来看,NServiceBus上有世界各地的公共课程,以及许多可以在现场启动项目或在遇到问题时提供帮助的顾问。我听说有几家公司决定从MassTransit转换为NServiceBus,因为他们无法在需要时在现场找人。
发牌
对于NServiceBus来说,有些人仍然不知道的是,它对于个人使用和启动都是免费的。
当用于商业用途时,NServiceBus周围的许可模型非常灵活,正如广泛的客户所表明的那样,并且可以很好地证明其适用于管理。当然,使用MassTransit,许可是免费的。
希望以某种方式有所帮助。