你知道API网关的作用吗?

发布者:上海IT外包来源:http://www.lanmon.net点击数:1361

API网关我的分析中使用了以下三种方案。
开放API。
企业需要打开自己的数据和功能作为开发平台,通常以休息的形式提供。最好的例子是淘宝开放平台,腾讯QQ开发平台和微信开放平台。
Open API开放平台必然涉及客户端应用程序的访问,API权限的管理,呼叫时间的管理等。必须有一个统一的管理门户,这是API网关可以运行的时间。
微服务网关
微服务的概念最初是在2012年提出的。在Martin Fowler的推动下,微服务自2014年以来得到了蓬勃的发展。
在微服务架构中,有一个可以说是必不可少的组件,即微服务网关,微服务网关处理负载均衡,缓存,路由,访问控制,服务代理,监控,日志记录, 等等。
API网关作为微服务架构中的微服务网关而存在。
API服务管理平台。
上述微服务架构对企业来说很难实现。企业中有许多遗留系统。它对于微服务器来说太大了,而且企业的成本太高了。
但是,由于在不同系统之间相互调用大量API服务,因此必须管理系统间服务调用,清楚地看到系统调用关系,并监视系统间调用。
API网关可以解决这些问题。我们可以认为,如果没有大规模实施微服务架构,那么微服务网关就是企业的企业API服务管理平台。
02.企业整体架构中API网关的状态
随着信息系统复杂性的提高,企业将不可避免地拥有外部合作伙伴应用程序,企业公共网络应用程序和Intranet应用程序。应该在架构方面区分这三个应用程序。访问方法不同。
因此,在我的设计中,这三个应用程序由具有不同网关的API管理:API网关(OpenAPI合作伙伴应用程序),API网关(内部应用程序)和API网关(内部公共网络应用程序)。
03.如何在企业中应用API网关
对于OpenAPI使用的API网关,普通合作伙伴需要以应用程序的形式访问OpenAPI平台,合作伙伴需要将应用程序申请到OpenAPI平台。因此,在OpenAPI网关之外,需要一个供合作伙伴使用的平台,这需要OpenAPI网关提供访问该用户平台的API。
以下架构:
当然,如果是在一个简单的场景中,可能没有必要为合作伙伴提供门户。只需要由公司的操作人员直接添加合作伙伴应用程序ID /密钥。在这种情况下,不需要合作伙伴门户。子系统。
对于Intranet的API网关,它可以被视为微服务网关,也可以被视为Intranet的API服务管理平台。
当企业使用微服务架构管理所有应用程序时,API网关充当微服务网关。
当企业仅在系统和系统使用其余api访问时使用API网关来管理呼叫时,API网关扮演API服务管理的角色。
架构参考如下:
对于公司的内部公共网络应用程序(例如APP,公司的网站),如果管理更加详细,则可以通过独立的API网关处理这部分内部公共网络应用程序。如果您想要处理更简单的问题,您还可以使用面向合作伙伴的API网关。
如果您使用单独的API网关,则具有以下好处:
合作伙伴和面向公司的业务的优先级不同,不同的API网关可以隔离业务影响。
内部API使用的管理过程和合作伙伴的管理过程可能不同。
内部API对功能扩展等的要求通常大于OpenAPI的功能要求。
基于以上分析,如果公司有能力,建议分别使用合作伙伴OPEN API网关和内部公网应用网关。
04. API Gateway的竞争方案有哪些?
对于Open API平台的API网关,我分析了只能选择API网关作为解决方案。业界尚未找到可用作Open API平台入口点的其他解决方案。
对于作为微服务网关的API网关,业界可以选择可以选择的解决方案,这取决于微服务器的实现。微服务架构的一些实现不需要微服务网关。
Service Mesh是一种基于无API网关的新兴架构,通过客户端上的代理完成网络层的屏蔽,从而实现对应用层的最小变化。目前的Service Mesh产品仍在开发中,并不是非常成熟的产品,可以直接应用。增长最快的产品是Istio。建议您密切关注相关产品的开发和业务使用的进展。基于duboo架构,在此架构中,通常不需要网关。客户端直接访问服务提供商,注册中心将服务方的地址返回给客户端。
05.API网关解决方案
私有云开源解决方案如下:
Kong Kong是基于Nginx + Lua的二次开发,https://konghq.com/
Netflix Zuul,zuul是spring cloud的推荐组件,https://github.com/Netflix/zuul
Orange,这个开源程序是由中文开发的,http://orange.sumory.com/
公共云解决方案:
亚马逊API网关,https://aws.amazon.com/cn/api-gateway/
阿里云API网关,https://www.aliyun.com/product/apigateway/
腾讯云API网关,https://cloud.tencent.com/product/apigateway
自行开发的解决方案:
基于Nginx + Lua + OpenResty解决方案,您可以看到Kong和Orange基于此解决方案。
基于Netty,非阻塞IO模型。通过在线搜索,我们可以看到一些公司,如国内的宜人贷款都是基于这个方案,是一个成熟的方案。
基于Node.js解决方案。这种方法基于Node.js的非阻塞性质。
基于java Servlet解决方案。 Zuul是基于这种方案,这个方案的效率不高,这就是为什么zuul总是受到批评的原因。
06公司如何选择API网关
如果要选择现有API网关,则需要考虑以下方面。
性能和可用性
如果使用API网关,API网关将成为企业应用程序的核心,因此需要性能和可用性。
在性能方面,增加网关带宽所需的时间尽可能短,个人认为需要的时间少于10毫秒。系统需要使用非阻塞IO,例如epoll,NIO等。网关和各种依赖关系之间的交互也需要是非阻塞的,以确保整个系统的高可用性,例如:响应式编程基于Java的Node.js和RxJava以及Future。
网关必须支持群集部署,并且一台服务器的崩溃不应影响整体系统可用性。多组网关应支持相同的管理平台和相同的监控中心。例如,可以在同一监控中心监控企业的OpenAPI网关和多个内部应用系统组的不同微服务网关。
可扩展性,可维护性
产品总是有一个不能满足生产需求的地方。因此,有必要考虑如何重新开发和维护产品,以及公司团队是否方便接管产品的维护。
需求匹配
有必要评估API网关是否能满足要求。例如,如果OpenAPI平台需要使用API网关,那么您需要查看API网关,以考虑OpenAPI核心要求中的产品,例如合作伙伴应用程序访问,合作伙伴门户集成和访问配额。你能满足要求吗?
如果它是一个微服务网关,那么考虑一下该产品是否足够强大,从微服务的运营,维护,监控和管理。
它是开源的吗?公司是否具有自我开发能力?
现有的开源产品如kong,zuul和orange都具有基本API网关的核心功能。这些开源产品大多与良好的使用有一定的距离,如:UI界面没有管理功能,监控功能薄弱,没有支持OpenAPI平台,没有公司运营和运维功能。
当然,开源产品可以获得源代码。如果公司拥有强大的研发能力,它可以持有这些开源产品。经过二次开发,zuul仍应适应一些公司,但要注意以下几点:
Kong基于ngnix + lua,很难从公司的角度找到能够维护这种架构产品的人。需求评估当前公司是否有能力维护此产品。
由于该体系结构,zuul在高并发性的情况下效率不高,因此有必要在开发基础上集成开源适应监控和管理系统。
由于橙子的使用量很大,因此它也是开源的国内个体,在可持续性和社区资源方面不够丰富。在遇到问题后找人可能并不容易。
另外,kong提供了企业版的API网关,当然也基于ngnix + lua,企业版可以购买他们的技术支持,培训等服务,以及界面管理,监控等功能。
公共云或私有云
现在,亚马逊,阿里和腾讯云正在为基本公共云提供API网关。当然,这些网关的基本功能当然没有问题,但二次开发,扩展功能和监控功能可能无法满足某些用户的定制需求。
另外,由于自身的信息安全性,许多企业不能使用外部网络公共网络的API网关服务,因此只有选择私有云的解决方案才可用。
在需求方面,如果基于公共云的API网关只能由内部人员应用于外部网络人员,则不可能定制合作伙伴门户,这不适合某些企业的需求。如果您是微服务网关,在大多数情况下,您希望网关服务器和服务提供商服务器位于Intranet上。在这种情况下,只有私有云API网关才能满足要求。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部