本文目录导航:
散布式 API 网关 Kong网关简介
走进散布式API的守护神:Kong网关详解
Kong,一款由Mashape公司开源的API Gateway,仰仗其高可用性和易裁减性,仰仗OpenResty(Nginx与Lua模块的完美融合)的弱小后台,成为现代运行架构中的关键一环。
它奇妙地将Apache Cassandra或PostgreSQL的数据存储才干与Nginx的负载平衡和处置才干相联合,为应答海量恳求提供了弱小保证。
Kong的外围由三个组件导致:
Kong的魅力在于其插件机制,准许开发者经过Lua编写丰盛的性能裁减。
目前,基础插件如HTTP认证、CORS、API限流、恳求转发等已笼罩到关键畛域,满足了多样化的场景需求。
Kong的出色个性
关于安保性,Kong提供了丰盛的认证选项,如基本认证、OAuth2、JWT,以及访问控制、CORS等插件,确保数据的合规性和安保性。
此外,流量控制、剖析和监控性能雷同弱小,如Galileo、Datadog和Runscope,协助提升性能并启动深度剖析。
Kong的恳求流程
每个API恳求首先由Kong捕捉,而后路由到指标服务,时期插件会处置恳求和照应,确保权限控制和性能裁减。
Kong是API恳求的首要入口点,也是剖析和智能化部署的关键节点。
Kong作为API网关的价值在于简化控制、提供集中监控、推进智能化流程,照成功一致的身份验证和部署战略,防止扩散和复杂性带来的困扰。
虽然Kong的插件系统自动性能丰盛,但企业级运行或者须要更初级的性能,如API级别的超时处置、缓存战略等,这时可以经过Lua裁减成功定制化。
总而言之,Kong以其弱小的API控制才干、灵敏性和裁减性,成为企业级API网关的首选。
假设你正在寻觅一个高效、可裁减的API处置打算,Kong无疑是值得深化钻研和通常的低劣选用。
究竟什么是api网关
假定你在开发一个电子商务网站,那么会有很多后端的微服务,比如会员、商品、介绍服务等等。
那么这里就有疑问了。
APP/阅读器如何访问这些后端服务?假设业务比拟便捷,可以给每个业务调配一个独立的域名(,然而这样会有几个疑问:每个企业都须要逻辑,如认证、电流限度和权限审核。
假设每个业务都是步伐一致,那么打造自己的轮子,放到一个一致的中央,会十分痛苦。
假设业务量比拟便捷,前期不会有疑问,然而随着业务越来越复杂,比如淘宝和亚马逊或者会触及上百个微服务一同上班。
假设每个微服务都调配一个域名,一方面客户端代码会很难保养,触及上百个域名,另一方面是衔接数的瓶颈。
构想一下,你关上一个APP,发现经过抓取套餐的方式触及到上百个远程呼叫,这是在移动端。
每次新业务上线,都须要运维的介入,比如放开域名,性能Nginx。
主机上线下线时,也须要运维的介入。
另外,驳回域名对环境的隔离也不友好,须要呼叫者依据域名做出自己的判别。
还有一个疑问。
后端的每个微服务或者用不同的言语编写,驳回不同的协定,如HTTP、Dubbo、GRPC等。
,然而你不能要求客户端去顺应那么多协定。
这是一项十分具备应战性的上班,名目会变得十分复杂,难以保养。
假设前期须要重构微服务,也会变得很费事,须要客户端配合你启动变革,比如商品服务。
随着业务越来越复杂,前期须要拆分红多个微服务。
这个时刻对外提供的服务也须要拆分红多个,客户端须要配合你去转型,这是很痛苦的。
【分享】什么是API网关?大公司为什么都有API网关?
在这篇文章中将咱们一同来讨论以后的API网关的作用。
一、API网关的用途 API网关我的剖析中会用到以下三种场景。
二、API网关在企业全体架构中的位置 一个企业随着消息系统复杂度的提高,肯定产生外部协作同伴运行、企业自身的公网运行、企业内网运行等,在架构上应该将这三种运行区别开,三种运行的布置级别、访问方式也不一样。
因此在我的设计中将这三种运行区分用不同的网关启动API控制,区分是:API网关(OpenAPI合伙同伴运行)、API网关(外部运行)、API网关(外部公网运行)。
三、企业中在如何运行API网关 1、关于OpenAPI经常使用的API网关来说,普通协作同伴要以运行的方式接入到OpenAPI平台,协作同伴须要到 OpenAPI平台放开运行。
因此在OpenAPI网关之外,须要有一个面向协作同伴的经常使用的平台用于协作同伴,这就要求OpenAPI网关须要提供API给这个用户平台启动访问。
如下架构: 当然假设是在便捷的场景下,或者并不须要提供一个面向协作同伴的门户,只要要由公司的经营人员间接减少协作同伴运行id/密钥等,这种状况下也就不须要协作同伴门户子系统。
2、关于内网的API网关,在起到的作用过去说可以以为是微服务网关,也可以以为是内网的API服务控制平台。
当企业将一切的运行经常使用微服务的架构控制起来,那么API网关就起到了微服务网关的作用。
而当企业只是将系统与系统之间的调用经常使用rest api的方式启动访问时经常使用API网关对调用启动控制,那么API网关起到的就是API服务控制的作用。
架构参考如下: 3、关于公司外部公网运行(如APP、公司的网站),假设控制上比拟粗疏,在架构上是或者由独立的API网关来处置这局部外部公网运行,假构想比拟便捷的处置,也可以是经常使用面向协作同伴的API网关。
假设经常使用独立的API网关,有以下的好处: • 面向协作同伴和面向公司主体业务的优先级不一样,不同的API网关可以做到业务影响的隔离。
• 外部API经常使用的控制流程和面向协作同伴的控制流程或者不一样。
• 外部的API在性能裁减等方面的需求普通会大于OpenAPI关于性能的要求。
基于以上的剖析,假设公司有才干,那么还是倡导离开经常使用协作同伴OPEN API网关和外部公网运行网关。
四、API网关处置打算 私有云处置打算如下: • Kong是基于Nginx+Lua启动二次开发的打算• Eolinker和Kong比拟凑近,然而由于是国际公司开发的,后续的技术支持和培训比拟友好。
• Netflix Zuul,zuul是spring cloud的一个介绍组件,• orange,这个开源程序也是国人开发的,不过这个是团体开发不是公司。
私有云处置打算: • Amazon API Gateway,• 阿里云API网关,• 腾讯云API网关,自开发处置打算: • 基于Nginx+Lua+ OpenResty的打算,可以看到Eolinker,Kong,orange都是基于这个打算。
• 基于Netty、非阻塞IO模型。
经过网上搜查可以看到国际的恼人贷等一些公司是基于这种打算。
• 基于的打算。
这种打算是运行了天生的非阻塞的个性。
• 基于java Servlet的打算。
zuul基于的就是这种打算,这种打算的效率不高,这也是zuul总是被诟病的要素。
五、企业怎样选用API网关 如今的亚马逊、阿里、腾讯云都在提供基础私有云的API网关,当然这些网关的基础性能必需是没有疑问,然而二次开发,裁减性能、监控性能或者就不能满足局部用户的定制需求了。
另外很多企业由于自身消息安保的要素,不能经常使用外网私有网的API网关服务,这样就只要选用私有云的打算了。
在需求上假设基于私有云的API网关只能做到由外部人员为外网人员放开运行,不可做到定制的协作同伴门户,这也不适宜于局部企业的需求。
假设作为微服务网关,大少数状况下是宿愿网关主机和服务提供方主机是要在内网的,在这里状况下也只要私有云的API网关才干满足需求。
综合下面的剖析,基础私有云的API网关只要满足一局部便捷客户的需求,关于很多企业来说私有云的API网关才是正确的选用。