API网关和ESB之间的区别?[关闭]


20

我工作的公司正在评估一些中间件解决方案,以解决网络服务的治理,计量和安全问题。当前,我们正在为此目的使用企业服务总线(ESB),但是管理层中的一些帅哥决定他们将部署一些API管理中间件。

我对这些API管理(又称API网关)解决方案进行了一些研究,但找不到它们与实际ESB之间的区别。我评估了Mule,WSO2,Oracle等的一些白皮书,但是两种产品提供的功能似乎几乎相同。问题是,ESB无法做到的API管理能做什么,反之亦然?通过替换API网关的ESB,可以为IT基础架构增加什么价值?


4
软件工程讨论的主题“ API网关和ESB有什么区别”的问题如何?
弗朗西斯科·德安科尼亚'18

Answers:


21

弄混概念的原因是供应商将它们打包出售。但是它们绝对是独立的概念。

API网关提供了一个中央访问点,用于管理,监视和保护对公开公开的Web服务的访问。它还将允许您跨不同的端点合并服务,就像它们全部来自单个主机一样。例如,假设您有十个不同的服务端点,它们都是单个“服务套件”的一部分。您可以让它们全部指向api.yourcompany.com/service1或api.yourcompany.com,而不是通知服务的消费者将service1.yourcompany.com用于一项服务,将service2.yourcompany.com用于另一项服务,等等。 / service2和网关将负责将请求重定向到适当的端点。

ESB是内部“总线”,它允许应用程序和服务以非耦合方式相互通信。所有应用程序都可以挂接到总线上,并且当其他应用程序发布它们时,它们可以接收任何感兴趣的消息。他们还可以发布自己的消息,其他应用程序可以侦听并响应它们。这些应用程序不负责彼此之间的直接连接,它们将消息发布到总线上,并且所有相关方都在监听并做出反应。

从逻辑上讲,API网关不是ESB的替代品,而是面向服务的体系结构的增强。


1
我相信使用ESB的论点是相同的。ESB是中央访问点,可以执行来自不同端点的服务的负载平衡,监视,计量和安全性。您还可以将ESB的URL而不是单个服务的URL传递给使用者。到目前为止,没有新内容。
dliber 2014年

ESB是内部API网关,供外部使用。如果您想在内部使用API​​网关而不是ESB,我想没有什么可以阻止您的。
迈克尔·布朗

这就是重点。ESB和API平台的功能重叠。您可以部署ESB进行外部访问,也可以部署API平台进行内部访问。如果它们的功能相同,那么使用一个代替另一个有什么好处?是什么使它们如此与众不同,因此您可以使用其中一种而不是另一种(或两者一起使用)并为您的业务创造真正的价值?
dliber 2014年

ESB专为高流量而设计。它通常具有专有或非互联网友好协议。API网关旨在在Internet协议(SOAP,JSON,XML,HL7)之间转换,并将请求放置在ESB上。基本上,您可以使用网关在内部服务之间进行通信,但不一定使其最适合。
迈克尔·布朗 Michael Brown)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.