NServiceBus到底是ESB吗

NServiceBus到底是ESB吗,nservicebus,esb,Nservicebus,Esb,NServiceBus到底是ESB还是轻量级ESB?还是更像WCF,具有持久/可靠的消息传递?在我看来,它更像是一个消息传递框架,而不是ESB 我刚刚开始研究不同的ESB产品,以及它们能做什么和不能做什么,我只是想要一些指针。您的问题有点没有定论。最好概述一下您需要ESB提供哪些功能,然后询问NSB是否支持这些功能 更新 我认为我应该更新我的答案以回应克里斯的答案 尽管很方便,但创建两个类别是错误的,也无益的,如Chris所说的Bus和Broker 服务总线在服务及其消费者之间提供了与传输和平台

NServiceBus到底是ESB还是轻量级ESB?还是更像WCF,具有持久/可靠的消息传递?在我看来,它更像是一个消息传递框架,而不是ESB


我刚刚开始研究不同的ESB产品,以及它们能做什么和不能做什么,我只是想要一些指针。

您的问题有点没有定论。最好概述一下您需要ESB提供哪些功能,然后询问NSB是否支持这些功能

更新

我认为我应该更新我的答案以回应克里斯的答案

尽管很方便,但创建两个类别是错误的,也无益的,如Chris所说的Bus和Broker

服务总线在服务及其消费者之间提供了与传输和平台无关的中介连接。在此定义下,使用MessageBroker模型的产品也可以用作服务总线

企业服务总线提供这种连接,但也可以添加企业级中介,例如:

  • 对消息交换模式的内置支持
  • 集中监测
  • 服务负载平衡和实例
  • 自动故障和异常管理
  • 服务元数据可发现性
  • 失败时重试
  • ……还有更多

因此,我认为当你选择一个工具集时,你应该首先决定你需要什么样的功能,然后你可以选择最适合你需要的产品

NServiceBus绝对是一个ESB。句号

企业服务总线(EnterpriseServiceBus),一种总线,意味着通过设计允许系统的组件进行分布式和独立工作。总线本身也是分布式的。一个组件或服务的故障不会影响连接到总线的其他组件的可用性

公共汽车的对面是经纪人。代理表示系统中的单点故障。像MS BizTalk这样的东西是代理,而不是ESB

更新
请详细介绍一下NSB中的企业支持
-支持单向触发和遗忘(持久和快速)、相关请求-响应、发布-订阅。其他一切都可以建立在这之上。
-事务性和自动的
-使用
-使用
-内置管理
名单还在继续。。。使NServiceBus成为ESB


一些MessageBroker产品可以以“联合模式”部署,这使得这些部署分散。分散部署类型与总线体系结构风格很好地一致。所以,我想,这要视情况而定。然而,集中部署只是一个企业服务代理,而不是一个总线。

我认为nServicebus肯定是一个ServiceBus,不确定你可以称它为“企业”ServiceBus而不必花费数十万美元。不过,说真的,您需要仔细考虑是否真的需要ESB。他们中的大多数人承诺拥有大量财富,但却带来了大量的管理费用,而且很难实现其价值。我在一家大型企业中使用过WSO2,它是我们的3个ESB之一。非常有进取心,由OPs团队管理,这是一个真正的痛苦,因为我们必须与另一个团队合作来建立和运行我们的系统。其他问题包括所谓的功能,如消息路由或消息翻译。当然,产品可以做这些事情,但它会让您脱离开发环境,让您有更多的事情需要担心。代码和/或配置分散到更多的地方,管理更多可能出错的事情。这是我非常喜欢nServiceBus的一点,开发人员非常容易访问它。我喜欢的另一个实现是Azure ServiceBus。很明显,它的功能不全,而且可能不是您想要的,但我喜欢开发人员的可访问性和自助服务特性,这些都是我将要考虑的特性。

企业服务总线是一种复合SOA模式。如果您查看Thomas Earl的书,这里是ESB包括的模式

  • 代理(协议桥接、数据格式和数据模型转换)
  • 中间路由
  • 异步排队
  • 可靠的混乱
  • 事件驱动
  • 政策集中
  • 规则集中
  • 据我所知,NServiceBus(有限)确实应用了其中一些模式——rest(例如:规则集中和策略集中)预计将由用户实现。根据这个定义,BizTalk也是一个ESB


    需要记住的一件重要事情是,使用NServiceBus或Biztalk或其他任何东西都不会使您成为SOA。事实上,如果使用不当,您可能会发现自己与一个供应商捆绑在一起,从而挫败了SOA的第一个原则——供应商中立性

    不,我不认为NServiceBus是一种ESB产品,也不认为它是一种EAI工具

    如果我们想与其他工具进行比较,NServiceBus更接近jmsapi(例如springjms)和AMQP。它是一个框架,可以帮助您使用友好的编程语法与消息队列交互,并在应用程序中实现常见的消息传递模式(例如,发布/订阅、请求/回复、死信、“saga”)

    而传统上在EAI行业中称为ESB产品的ESB是一个促进企业环境中许多异构应用程序集成的平台。尽管不同的ESB产品提供不同的功能,但它们都有一些共同的功能,这些功能使它们非常有用,主要的功能是它们广泛收集了各种开放和专有协议和服务的连接器(包括消息队列,但也包括其他内容,如WS-*、sftp、SAP、Siebel、rdbms、xmpp、websockets/comet、corba、edi),以及一整套现成的企业集成模式实现(如黑皮书所示),因此您不必