NServiceBus和Windows ServiceBus比较

48

有没有人能够介绍一下新发布的Windows ServiceBus(本地版本,不是Azure)和NServiceBus之间的区别?

想要详细回答一下Windows SB可能缺少的功能,因为我知道NServiceBus能做什么:

  1. 它是一个真正的服务总线,而不只是使用队列的消息代理吗?
  2. 它是否支持消息多态性?(消息子类化和处理程序支持此层次结构)
  3. 长时间运行的过程和相关性
  4. 扩展

你能提供一下新的Windows ServiceBus的链接吗?我只看到Azure的那一个。 - Chris Bednarski
http://msdn.microsoft.com/library/jj193022%28Azure.10%29.aspx - TimJohnson
2
看起来微软的高级程序经理在这里回复了 - http://social.msdn.microsoft.com/Forums/en-US/servicebuslabs/thread/f4700a88-603d-494a-b963-951cd8e11530。从NSB团队那里听到为什么NSB仍然更好将是非常棒的。 - TimJohnson
1个回答

39

我负责NServicebus中的Windows Azure ServiceBus支持。 我认为,这个新的Windows Server Servicebus提供了与Azure ServiceBus完全相同的功能。因此,在我看来,它与NServiceBus是很好的搭配而不是竞争对手(就像Windows Azure ServiceBus一样),可以用来替代msmq。

回答你的问题:

  1. 新的Servicebus是使用队列的代理。
  2. Servicebus中的消息最终只是字符串,Servicebus本身没有针对消息类型、层次结构、处理程序等的其他支持。通常情况下,您会使用WCF或NServiceBus来实现。
  3. 它不支持长时间运行的进程和关联。但它与NServiceBus有一些特性重叠,例如可以订阅/主题,也可以延迟消息以及过滤器。
  4. 它被设计为可扩展的。

希望这能帮到你?

此致

敬礼, Yves


  1. 在Windows Service Bus中,客户端是否仍然可以像在NSB中一样通过其本地的msmq发送消息?我知道订阅是字符串而不是类型化的,但它是否仍然可以像Bus.Send一样使用?因此,如果出现任何崩溃,消息首先存储在本地队列中吗?
  2. 您还提到Windows SB与NSB非常匹配,可以替代msmq使用?您能详细说明吗?可以像NSB发布一样描述一下流程,然后消息传递到x...等等。
- TimJohnson
  1. 不,队列不是本地节点的,就像 msmq 一样。因此,在将消息发送到队列之前,机器需要连接到 SB 服务器。
  2. SB 队列提供了 nservicebus 处理消息所需的持久性和事务性,唯一与 msmq 不同的是,节点需要连接才能正常工作。
- Yves Goeleven
回复:在我看来,这并不正确——为什么Windows服务总线会复制编排功能(长时间运行、关联等),如果这是WF的领域,而WF又与服务总线一起工作呢? - Sentinel
长时间运行:在上面已经回答了。 不支持消息类型:ContentType:https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.contenttype.aspx 不支持关联:CorrelationId:https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.correlationid.aspx - George Tsiokos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接