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

问题描述 投票:94回答:3

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

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

.net nservicebus servicebus
3个回答
75
投票

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

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

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

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

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

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


12
投票

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

在实现良好的面向服务的体系结构的永无止境的任务中,服务总线充当了另一层抽象。 Service Bus可以处理在消息传递,路由和服务协调等良好的面向服务架构背后的一些繁重工作。

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


11
投票

这个术语是用SOA引入的,这在某种程度上是EAI的继承者(作为流行词)。

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

如果它解决了比它导致的更多问题,那么经验法则可以。

如果您拥有异构环境并希望将(不同的)应用程序(使用不同的技术)与业务流程对齐,那么请认真对待。然后使用BPEL(但这会通过迁移引入问题)对于编排和编排会很有帮助

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

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

© www.soinside.com 2019 - 2024. All rights reserved.