首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >API网关和ESB有什么区别?

API网关和ESB有什么区别?
EN

Stack Overflow用户
提问于 2016-01-26 20:49:43
回答 6查看 33.4K关注 0票数 32

ESB是SOA解决方案中用于路由、消息转换、协议桥接等的传统中间件。现在,几家供应商提供了一种名为API Gateway的新型中间件解决方案。这些解决方案通常被描述为访问组织公开提供的REST和SOAP服务的中心点。但是,API Gateway解决方案似乎提供了典型ESB功能的子集。

那么,ESB和API Gateway有什么区别呢?我应该在什么时候使用其中一个?

EN

回答 6

Stack Overflow用户

发布于 2019-04-24 05:01:45

API网关是为客户端提供的代理。无论内部系统发生什么变化,网关都会为客户端提供一致的界面。它允许内部系统在不影响客户端的情况下更改。API Gateway还可以提供一致的横切关注点,如安全日志、报告和API分析。

ESB (企业服务总线)提供了一种服务到服务通信的方法。使用此技术,服务不需要相互通信,从而减少了耦合。ESB通常使用保证消息传递进行服务间通信。

今天,服务网格模式已经成为微服务的流行模式。Service Mesh实现可以提供API网关和服务到服务通信,以及负载平衡、安全性和许多其他功能。

有很多变体和实现细节,但这是高层的区别。

票数 13
EN

Stack Overflow用户

发布于 2016-01-26 22:41:51

API网关通常充当web服务的代理,并提供有趣的值,例如:日志记录、使SOAP服务像REST服务一样可调用、调试帮助、跟踪等。因为API网关是消费者和您的服务之间的桥梁,所以它可以很容易地捕获流量并执行此类操作。

企业服务总线(如nServiceBus)设计为位于消息传递协议(如RabbitMQ)之上,为其提供基本消息传递或发布订阅不附带的功能(或难以实现的功能),例如:数据库存储的持久消息、重试逻辑、侦听器封装、更容易订阅消息的方法,以及传奇。您可以在不使用ESB的情况下使用消息传递协议,但反之亦然。例如,可以在不使用nServiceBus的情况下使用RabbitMQ

票数 6
EN

Stack Overflow用户

发布于 2020-05-09 20:31:12

两者都可以执行中介和服务的聚合。主要区别在于,API网关公开了一组要使用的服务,并负责代理服务的一些其他功能;例如速率限制。

另一方面,ESB提供了双向关系,因此提供者和使用者(服务)都可以参与进来,以获得所需的结果。换句话说,ESB允许计算实体既是服务又是消费者。API-gateway将服务限制为具有单一行为。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35014242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档