什么是服务总线?

20

我在网上无数次读到了nservicebus,但仍然不明白什么是服务总线。

我认为它只是一种让非常不同的系统彼此通信的方式?如果是这样的话,我不明白它比WCF好在哪里?

我看过这里关于服务总线的帖子,但它仍然没有让我明白。

谢谢


1
可能是什么是服务总线,何时需要它?的重复问题。 - Syed
1个回答

12
假设您已经阅读了这些页面: http://particular.net/nservicebushttp://docs.particular.net/nservicebus/architecture/nservicebus-and-wcf,您会发现 NServiceBus 可以让服务之间的通信更加容易。它通过封装 WCF 来处理消息的 poisoned 和 transactional 元素,并提供开箱即用的发布/订阅式消息传递。NServiceBus 可以带来以下好处:
- 使用 WF 实现长时间运行的有状态进程 - 在本地进行消息传递 - 当服务器离线时,客户端可以发送消息 - 发现和分派 poison 消息 - 重新处理 poison 消息 - 订阅在重启后仍然存在 - 多态消息分发 - 多态消息路由 - 基于消息的单元测试

2
只是一个小澄清,NSB并不包装WCF,而是用它来代替WCF。它可以通过在同一进程中托管的WCF与其他系统集成。 - Adam Fyles
1
Adam,这正是对于不熟悉服务总线技术的人而言如此困惑的原因之一。在这里,你正在“澄清”并表示 NSB 被用于取代 WCF,然而 NServiceBus 网站本身却说,“NServiceBus 不是 RPC 技术(如 WCF)的替代品。” 这就像泥潭一样。 - Andy West
2
大多数情况下,公交车不应该用于类似于公共API的RPC接口(“不能替代WCF”),而RPC(公共API式接口)也不应该用于系统之间的分布式通信(消息传递)(“它是WCF的替代品”)。混淆发生的原因是人们对系统边界的定义不同。作为经验法则,公共API应该是RPC(WCF、Sinatra等),但“内部”服务之间的解耦通信应该通过具有持久队列的总线进行(MSMQ、RabbitMQ等)。 - gabe
@Kane,那些链接已经过时了,如果你有更新的链接,请及时更新。谢谢您的帮助。 - Mohit
@gabe,我的理解是nservicebus将取代msmq、rabbit mq等等...对吗?如果我错了,请纠正我... - King
4
不,NSN不能替代队列技术。NSB是一个“服务总线”框架,它会使用队列技术。 - gabe

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