在构建遵循微服务体系结构的整体服务(http://martinfowler.com/articles/microservices.html)时,针对(或要求)使用企业服务总线功能的原因是什么?为什么我们应该使用哑管道和智能端点,而不是使用更智能的管道,并且能够开发更简单的服务?为什么微服务架构不基于企业服务总线?
回答
术语ESB已经被重载,主要是在Java世界中,意味着一个庞大而复杂的基础架构,最终在一个中心位置托管一堆执行不力的逻辑。
像Apache Caml或NServiceBus这样的轻量级技术并不鼓励这种方法,并且确实遵循从一开始就充当互联网骨干的“哑管道/智能端点”方法。
NServiceBus特别关注于提供比大多数消息传递库更高级别的框架,以便通过更深入地支持一次性和一次性消息处理来更轻松地构建更可靠的智能端点。
完全披露 - 我是NServiceBus的创始人。
ESB如何使用的问题是它通过在ESB中构建一些业务逻辑来创建ESB和服务之间的耦合。这将使得单独部署单一服务变得更加困难,并且越来越使ESB更加复杂且难以维护。
这是一个巨大的问题,可能无法在SO的Q &格式中有效回答。
这取决于你在做什么。
如果你正在构建一个单独的产品,它包含许多可以被认为是独立的小部分功能,那么微服务可能是一条可行的路。
如果您是一家大型企业组织,IT不是董事会主要考虑的竞争优势,而且您在严格规范的行业工作,新标准必须应用于具有自己的IT的全球分布式项目部门,有些来自新收购,您无法集中控制组织内的所有端点和应用程序,那么您可能需要一个ESB。
我不想被指责试图列出全部这两种方法的优点在这里,因为它们不完整,可能会过时。
说了这么多,在努力成为有用的OP:
如果你看到了Spotify和Netflix的怎么办微服务,你可以找到自己喜欢的方式很多事情,包括但不限于:缓解部署个别服务的蓝/绿部署,解耦团队结构以及隔离失败。
ESB允许您集中管理和执行策略,如法律要求,在一个地方审核所有内容,而不是希望每个团队都能够记录所有事情,提供有关负载和正常运行时间的全球统计信息以及其他许多事情。 ESB从大型企业发展而来,驱动程序不是客户在网站上的响应时间和创新速度(除其他外),而是服务水平协议,成本效益和法规(等等)。
这两种方法都有很多价值。目前正在撰写微服务,就像10到15年前的ESB一样。也许这是一种进步,也许这只是一种改变,也许只是消费品公司需要推销自己,大型企业希望保持私密。我们可能会在10年后发现。目前,这很大程度上取决于你在做什么。与编程中的大多数事情一样,我会从简单的开始,如果需要的话,只会转向更复杂的解决方案。
由于服务被隔离并且管道被重新使用。
微服务的核心思想是隔离 - 系统的任何部分都可以被替换而不影响其他服务。智能管道意味着他们有配置,他们有状态,他们有复杂(通常意味着难以预测)的行为。因此,随着时间的推移,智能管道不太可能保持其确切的行为。
但是 - 管道更改会影响每个附加服务,而服务更改仅影响使用它的其他服务。
- 1. 企业服务总线术语
- 2. Glassfish是企业服务总线(ESB)?
- 3. 企业服务总线和BPM
- 4. Web服务和企业服务总线之间的区别
- 5. 微服务架构
- 6. 新公司基础设施的企业服务/数据总线?
- 7. 在微服务架构中,微服务将如何服务?
- 8. 什么是黑莓企业服务器?
- 9. 如何为条件消息配置wso2企业服务总线
- 10. 使用BabelWay作为企业服务总线的替代方案?
- 11. 微服务架构澄清
- 12. 微服务架构依赖
- 13. Vertx |为什么代理服务或事件总线服务不适用于Future?
- 14. NLayerd架构中的域服务和基础架构服务有什么区别?
- 15. 服务结构,什么微服务最适合从服务总线进行连续轮询
- 16. WSO2企业服务总线(WSO2 ESB)代理服务模式导入
- 17. 开源:针对服务的企业服务总线:WCF和Web API
- 18. 微服务架构:跨业务的数据共享
- 19. ASP.NET企业架构:业务层
- 20. 基于微服务的架构中的关键字搜索
- 21. 基于Docker的微服务架构中的领事
- 22. 企业架构师基线删除
- 23. 什么是基于C的服务和基于Java的服务?
- 24. Oracle服务总线 - 基于XML的代理服务
- 25. 服务在OpenShift企业2.0
- 26. 企业Web服务目录
- 27. 基于插件架构的Windows服务
- 28. 用功能语言实现ESB(企业服务总线)
- 29. wso2企业服务总线中的WSDL端点
- 30. WSO2的开源企业服务总线(ESB)