点击上方“”关注、加星或置顶共同成长
每天凌晨00:00,第一时间与你见面
每日英语
有一次,自己走出去,不闯进来,我就在那儿,你不做我,我不怪你。
每个人都有一个盲点,你出不去,别人也进不去。我把最深的秘密藏在那里。 如果你不理解我,我不会怪你。
每日一句真心话
一个人走了那么久,你不必感到孤独,因为在路的尽头,总有人在等你,你只需要更加努力,总有一天你会来到那个人的身边。
来自:| 责任编辑:乐乐
链接://p/.html
第785张推文图片来自网络
往期回顾:
文本
在这篇文章中,我们将讨论当前API网关的作用。
1.API网关的用处
API 在我的分析中会用到以下三种场景。
开放API
企业需要开放自己的数据和能力作为开发平台,通常以休息的形式。 最好的例子就是淘宝开放平台、腾讯的QQ开发平台、微信开放平台。
Open API开放平台必然涉及到客户应用的接入、API权限的管理、调用次数的管理等,必须有一个统一的入口进行管理。 这时候API网关就可以发挥作用了。
微服务网关
微服务的概念最早是在2012年提出的,在大力推动下,2014年后微服务得到了大力发展。在微服务架构中,有一个组件可以说是不可或缺的,那就是微服务网关,它处理负载均衡、缓存、路由、访问控制、服务代理、监控、日志记录等。API网关作为微服务架构中的微服务网关而存在。
API服务管理平台
上述微服务架构对于企业来说可能很难实施。 企业有很多遗留系统,将它们全部提取到微服务器中成本太高,这对企业来说成本太高。 但由于不同系统之间存在大量的API服务调用,因此需要对系统之间的服务调用进行管理,清楚地看到系统调用之间的关系,监控系统之间的调用。
API网关可以解决这些问题。 我们可以认为,如果没有微服务架构的大规模落地,那么微服务网关就是企业的API服务管理平台。
2、API网关在企业整体架构中的地位
随着企业信息系统复杂性的增加,不可避免地会出现外部合作伙伴应用、企业自身公网应用、企业内网应用等。 这三个应用程序应该在架构上有所区别。 三个应用程序的排列层次、访问方式也不同。
因此,在我的设计中,这三个应用程序使用不同的网关进行API管理,即:API网关(合作伙伴应用程序)、API网关(内部应用程序)、API网关(内部公网应用程序)。
3、企业如何应用API网关
1、对于使用的API网关,一般合作伙伴需要以应用的形式接入平台,合作伙伴需要在平台上申请应用。
因此,在网关之外,需要有一个面向合作伙伴的合作伙伴平台,这就需要网关提供API供这个用户平台访问。
结构如下:
当然,如果是简单的场景,可能没有必要为合作伙伴提供门户。 只需要公司运营人员直接添加合作伙伴应用id/key等即可,此时不需要合作伙伴门户子系统。
2、对于内网的API网关来说,可以看作是起到的作用,也可以看作是内网的API服务管理平台。 当企业使用微服务架构管理所有应用程序时,API网关充当微服务网关。
而当企业只使用rest api来接入系统之间的调用,并使用API网关来管理调用时,那么API网关就起到了API服务治理的作用。
架构参考如下:
3、对于公司内部公网应用(比如APP、公司网站),如果管理更细致的话,从架构上来说,可能有一个独立的API网关来处理这部分内部公网应用。 如果您想要更简单的处理,您也可以使用面向合作伙伴的 API 网关。
如果使用独立的API网关,有以下好处:
综合以上分析,如果企业有能力,建议分别使用合作伙伴OPEN API网关和内部公网应用网关。
4. API 有哪些有竞争力的解决方案?
1、对于Open API平台的API网关,我在分析中只能选择API网关作为解决方案。 业界尚未找到其他可以作为Open API平台入口的解决方案。
2、对于API网关作为微服务网关,业界有很多方案可供选择,同时也取决于微服务器的实施方案。 一些微服务架构实现方案不需要微服务网关。
Mesh,这是一种基于无API网关的新兴架构。 通过客户端上的代理屏蔽对网络层的访问,从而实现对应用层的最小改动。 目前Mesh产品还处于开发阶段,还不是很成熟。 直接应用的产品。 增长最快的产品是 Istio。 建议您密切关注相关产品的开发和业务使用进展。
基于duboo架构,该架构中通常不需要网关。 客户端直接访问服务提供者,注册中心将服务提供者的地址返回给客户端。
5. API网关解决方案
私有云开源解决方案如下:
公有云解决方案:
自主研发解决方案:
6、企业如何选择API网关?
如果您想选择现有的API网关,需要考虑以下几个方面。
1. 性能和可用性
一旦采用API网关,API网关将成为企业应用的核心,因此性能和可用性是必须的。
从性能方面来说,需要让网关增加的时间消耗尽可能短。 个人认为需要小于10ms。 系统需要使用非阻塞IO,比如epoll、NIO等,网关和各种依赖的交互也需要非阻塞,这样才能保证整个系统的高可用,比如:Node .js是响应式编程和基于java的体现。
网关必须支持集群部署,并且任务服务器的崩溃不应该影响整个系统的可用性。
多套网关应支持同一管理平台、同一监控中心。 例如,企业的网关和内部应用的多个系统组的不同微服务网关可以在同一个监控中心进行监控。
2.可扩展性和可维护性
一个产品总有一个地方不能满足生产需求,那么就需要思考如何对产品进行二次开发和维护,是否方便公司团队接管和维护该产品。
3、需求匹配度
需要评估各个API网关是否能够满足需求。 例如,如果平台需要使用API网关,那么就需要考虑API网关是否能够满足合作伙伴应用访问、合作伙伴门户集成、访问限制等核心需求。 满足要求。 如果是微服务网关,需要从微服务运维、监控、管理等方面考虑产品是否足够强大。
4.它是开源的吗? 公司是否具备自主开发能力?
现有的kong、zuul等开源产品都具备基础API网关的核心功能。 这些开源产品大多离好的使用还有一定的距离,比如:没有提供管理功能的UI界面,监控功能较弱,不支持平台,不具备公司运维的功能。 当然,开源产品可以获得源代码。 如果公司研发能力比较强,能持有这些开源产品,Kong和Zuul二次开发后应该还是能适应一些公司的,但需要注意以下几点:
另外,kong提供了企业版的API网关,当然是基于ngnix+lua的。 企业版可以购买他们的技术支持、培训等服务,以及界面管理和监控功能。
5.公有云还是私有云
现在亚马逊、阿里巴巴、腾讯云都在提供基础公有云的API网关。 当然,这些网关的基本功能肯定是没问题的,但二次开发、扩展功能、监控功能可能无法满足部分用户的定制需求。 另外,很多企业由于自身信息安全原因,无法使用外网和公网的API网关服务,只能选择私有云解决方案。
从需求上来说,基于公有云的API网关如果只能让内部人员为外部网络人员申请,无法提供定制化的合作伙伴门户,不适合部分企业的需求。
如果作为微服务网关,大多数情况下希望网关服务器和服务商服务器必须在内网。 这种情况下,只有私有云的API网关才能满足需求。
综合以上分析,基础公有云的API网关只能满足一些简单客户的需求。 对于很多企业来说,私有云的API网关是正确的选择。
欢迎在留言区留下您的意见,共同讨论、改进。 如果今天的文章给你提高学习能力带来新的启发、新的认识,请转发分享给更多的人。