api网关选型 如何架构一个合适的企业API网关?
如何架构一个合适的企业API网关?
企业API网关现在越来越多地被大型企业所选择。您可以在nginx系统下了解openresty、openresty edge、Kong。采用Java系统下的Spring云网关作为模型选择。一般来说,自学是没有必要的,门槛有点高。
Enterprise API gateway是一个通用名称,包括许多功能,如数据路由、协议转换、融合、限流、应用防火墙、灰色发布等。要想自主发展,首先要明确需求范围。
作为流量门户,企业网关对其高可用性有很高的要求。问题就像网络中断的影响。设计需要与应用程序架构师讨论。
有没有开源的api管理系统可以推荐的?
为了防止内部问题暴露给外部客户端,API网关将外部公共API与内部微服务API分离,并允许添加微服务和更改边界。结果是,可以重新构造微服务并适当调整其大小,而不会对外部绑定的客户端产生负面影响。它还通过为所有微服务提供单一入口点,对客户端隐藏服务发现和版本控制详细信息。
2. 为微服务添加额外的安全层。API网关提供了额外的保护层来防止恶意攻击,如SQL注入、XML解析器漏洞和拒绝服务(DOS)攻击。
3. 支持混合通信协议。尽管面向外部的api通常提供基于HTTP或rest的api,但是内部微服务可以从使用不同的通信协议中获益。协议可以包括protobuf或AMQP,或者与soap、json-rpc或XML-rpc的系统集成。API网关可以提供基于这些不同协议的外部和统一rest的API,允许团队选择最适合内部架构的API。
4. 如果微服务有共同的问题,如使用API令牌的授权、访问控制实现和速率限制,则可以降低微服务的复杂性。这些关注点中的每一个都可以通过要求每一项服务来实现,但是这增加了微服务开发的时间成本。API网关将从您的代码中删除这些问题,使您的微服务能够专注于手头的任务。
5. 微服务模拟和虚拟化通过将微服务API与外部API分离,您可以模拟或虚拟化服务以验证设计需求或协助集成测试。
为什么微服务需要API网关?
微服务架构可以理解为一种架构风格。大型复杂软件应用程序由一个或多个微服务组成。系统中的每个微服务都可以独立部署,每个微服务是松散耦合的。每个微服务只专注于完成一个任务,并很好地完成它。在所有情况下,每个任务都代表一种小型业务能力。API网关负责提供一个统一的API入口点,该入口点跨越一个或多个内部API。它通常还设置层速率限制和安全机制。
API网关可以进行协议适配、安全验证等,减少了微服务开发的外部适配,更贴近实际核心业务开发。
微服务架构为何需要搭配API网关?
构建企业网关与构建微服务网关的主要区别在于API网关往往需要作为一个统一的网关,即除了接管微服务网关的限流和认证功能之外,为了达到瘦身微服务网关的效果,它还需要能够与传统企业应用服务的集成平台中间件进行对接,如ESB、PI等散乱的API接口对接会更多。因此,作为一个统一的网关,最容易被批评的问题是性能问题、并发问题等等。今天,我们将不讨论如何确保统一网关的可靠性和高性能。今天,我们将主要讨论API网关缓存的附加功能,特别是对于企业网关这一重要组件。
首先,API网关的缓存是为了有效降低真正API提供者的压力,从而逐步降低API服务提供者的应用容器、应用缓存和数据库的压力。
其次,API网关的缓存可以有效减少后台API的访问时间。如果直接从API网关访问缓存,则不需要请求真正的API提供者,这大大减少了访问时间。
Figure-1-api gateway cache
基于缓存的统一api网关的工作步骤:
1。统一网关通过加载缓存模块,根据请求URL和参数解析从网关缓存中查询
2。如果缓存命中(在缓存有效期内),则直接返回统一网关
3。如果缓存未命中(缓存失败或未缓存),它将请求真正的API服务提供程序
4。请求结果返回到网关
5。统一网关将请求结果缓存到网关缓存
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。