NServiceBus是ESB吗?

Eat*_*oku 9 esb nservicebus

NServiceBus是ESB还是轻量级ESB?或者它更像是具有持久/可靠消息传递的WCF?它看起来更像是一个消息框架而不是ESB.

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

Chr*_*ski 26

NServiceBus绝对是ESB.完全停止.

企业服务总线,即总线,意味着可以通过设计允许系统组件分布和独立工作.公共汽车本身也是分布式的.一个组件或服务的故障不会影响连接到总线的其他组件的可用性.

公共汽车的对面是经纪人.经纪人在系统中呈现单点故障.像MS BizTalk这样的东西是经纪人,而不是ESB.

更新
只是为了详细说明NSB中的企业支持
- 支持的消息传递模式是单向消除和忘记(持久和快速),相关请求 - 响应,发布 - 订阅.其他所有东西都可以建立在其他之上.
- 事务性消息处理和自动重试
- 与distrubutor进行负载平衡
- 使用性能计数器进行可配置的审计和监视 - 列表中内置的长时间运行的流程管理 ...使NServiceBus成为ESB

某些消息代理产品可以以"联合模式"部署,这使得这些部署分散.分散式部署类型与总线架构风格很好地对齐.所以,我猜,这取决于.但是,集中部署只是企业服务代理,而不是总线.

  • 我从根本上不同意.要说经纪人和ESB不仅过于简单,而且也是不正确的.服务总线提供服务和消费者之间的平台和传输中立的中介连接.企业服务总线以企业级方式这样做. (6认同)
  • 分发!=高度可用 (3认同)
  • 我同意简单的服务总线和企业服务总线之间的区别.使公共汽车成为ESB的品质与您在更新中所说的非常相似.但是,总线将始终分布,从未进行过网络化.公共汽车是反经纪人. (2认同)

She*_*epy 6

不,我不会将NServiceBus视为ESB产品,也不是一般的EAI工具.

如果我们要找到与其他工具的比较,NServiceBus更接近JMS api(例如spring-jms)和AMQP.它是一个框架,可以帮助您使用友好的编程语法与消息队列进行交互并在应用程序中实现常见的消息传递模式(例如,pub/sub,请求/回复,死文字,"saga").

而在EAI行业中传统上已知的ESB产品是促进在企业环境中集成许多异构应用程序的平台.虽然不同的ESB产品提供不同的功能,但它们共享某些共同的功能,使它们有用,主要是它们广泛的连接器集合到各种开放和专有协议和服务(包括消息队列,但也包括其他东西,例如WS - *,sftp,SAP,Siebel,rdbms,xmpp,websockets/comet,corba,edi),以及一整套随时可用的企业集成模式实现(根据黑皮书),所以你没有自己重新实现它们以编排复杂的集成逻辑,例如转换,转换,路由,优先级划分,业务规则,策略实施,验证,重复检测,ETL以及通常在应用程序之间移动数据.

NServiceBus没有提供与执行任何集成工作远程相关的功能,也没有为此设计.这是您用来在应用程序中实现消息传递模式的东西,但不会是您为EAI项目选择的东西.