我知道这已经是一个很好的问题,但它并没有真正回答我正在寻找的问题。

据我了解:

1.两者都用作应用程序之间的中心焦点
2.两者都可以在服务/应用程序之间使用路由/中介/转换等

但我真正看到的唯一区别是中心和辐条通常有许多不同的格式进入中心(SOAP/REST/XML/JSON...),而 ESB 通常具有标准格式(通常只是 SOAP。)

此外,我一直在阅读该集线器和辐条与 ESB 相比引入了单点故障。那么这里的物理部署有什么不同吗?集线器在哪里具有所有可能的端点,而 ESB 具有跨多个集线器部署的端点?所以 ESB 只是多个集线器(因为想要更好的词)?

谁能帮我解决这个问题?

最佳答案

这里没有确切的答案,因为您可以将 ESB 视为一种特定的设计模式,或者将其视为有关软件集成工具和 SOA 演进的论述。

ESB 作为一种设计模式意味着您可以使用总线管理不同服务之间的通信,客户端可以轻松插入和拔出该总线。这通常是通过强制它们使用标准数据格式和协议(protocol)来完成的,而对于 Hub 和 Spoke,您可以为每个客户端使用自定义连接器和数据转换。这限制了您在运行多个集成时可能遇到的问题数量,但您在 ESB 中可能仍然存在单点故障。

ESB 作为一个话语(或营销术语)是一个更复杂的问题,人们争论什么是“真正的 ESB”。有人说你需要一个模块化架构,你可以在其中选择部署哪些组件,或者你需要能够将组件分布在不同的机器上以允许扩展和容错。在极端定义中,您甚至需要将数据转换器部署为分布式服务。

关于rest - Hub、Spoke 和 ESB 之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23540305/

10-13 01:45