什么是servicebus,我什么时候需要?

时间:2010-04-27 20:25:54

标签: .net nservicebus servicebus

我听说过NServiceBus,但我还没有真正理解它是什么。他们声称自己是“.net最受欢迎的开源服务总线”。

因此;什么是“服务巴士”,什么时候需要?

3 个答案:

答案 0 :(得分:75)

您可以将服务总线视为SOA的以太网。

首先,它引入了识别事物的语言,如以太网中的IP地址。这个名字本身并不是物理上的。

接下来,每个节点都有一些物理参与,例如在用于支持半连接通信的总线的情况下的队列,或者隐喻中的以太网卡。

除了物理之外,还有通信的“协议”部分,就像以太网的OSI堆栈一样。使用总线,这是应用程序代码使用的客户端库。

最终,您可以将服务总线视为为构建分布式系统提供下一个更高级别的抽象。您还可以将它用于客户端 - 服务器通信,以便为您提供持久的单向消息传递,以及服务器将通知推送回客户端。

具体来说,你会发现NServiceBus非常轻巧,易于使用,一旦你使用排队技术,你可以选择RabbitMQ,MSMQ,常规SQL表,Amazon SQS,Azure存储队列和Azure服务总线。

答案 1 :(得分:12)

查看维基百科的Enterprise Service Bus文章。

服务总线作为实现良好的面向服务架构的永无止境的追求中的另一层抽象。服务总线可以处理在消息传递,路由和服务协调等良好的面向服务架构背后的一些繁重工作。

如果你不确定为什么要这样的东西,我建议你阅读一下什么是一个好的面向服务的架构。这本真正让我眼前一亮的书证明了只有拥有Web服务和拥有真正的面向服务的体系结构之间的区别是Thomas Erl的Service-Oriented Architecture: Concepts, Technology, and Design

答案 2 :(得分:11)

此术语是SOA引入的,它在某种程度上是EAI的继承者(作为热门词)。

什么时候需要?这是个好问题。它带来了很多复杂性。

经验法则可以解决比问题更多的问题。

如果您拥有异构环境并希望将(不同的)应用程序(使用不同的技术)与业务流程对齐,那么请认真对待。 然后,对于编排编排

,使用BPEL(但这会通过迁移引入问题)会很有帮助

编辑:维基百科上没有什么,是练习: ESB可以是i.g.使用特殊的连接器,旧的终端应用程序,与Corba或Java Enterprise一起使用,这意味着互操作性。缺点是围绕SOAP的超过100个“标准”,如果不付出巨大努力就不合作。

如果您必须在两家大型保险公司合并后的六个月内互连IT系统,那么您肯定需要它。