北京建站公司网站,手机网站关闭窗口代码,左侧导航栏网站,旅游地网站制作【API网关】| 总结/Edison Zhou最近在学习Kong网关#xff0c;因此根据老习惯#xff0c;我会将我的学习过程记录下来#xff0c;一来体系化整理#xff0c;二来作为笔记供将来翻看。由于我司会直接使用Kong企业版#xff0c;学习过程中我会使用Kong开源版。什么是Kong因此根据老习惯我会将我的学习过程记录下来一来体系化整理二来作为笔记供将来翻看。由于我司会直接使用Kong企业版学习过程中我会使用Kong开源版。什么是KongKong的原意为金刚用来形容强健、力量、坚固和稳定可以想想电影中的金刚也不难看出Kong的Logo是一只金刚了。Kong是一款基于Nginx Lua模块写的高可用易扩展的开源API Gateway项目。由于Kong是基于Nginx的所以可以水平扩展多个Kong服务器通过前置的负载均衡配置把请求均匀地分发到各个Server来应对大批量的网络请求。相对于纯Nginx Kong具有以下优点1高性能亚毫秒级处理延迟可支持关键任务用例和高吞吐量。2可扩展性可插拔的体系结构可通过Kong的Plugin SDK扩展 Kong。3可移植性Kong 可以部署在任何平台、或者云。NOTEKong作为一个优秀的云原生开源项目目前已经加入了CNCF云原生计算基金会。Kong要解决啥问题其实Kong要解决的问题也是API网关需要解决的问题如下图所示在没有引入网关之前为了保障交互的安全每个服务都需要自己实现一套权限校验Auth、日志、限流、监控等方案。这样就不太好各种成本很高。引入API网关之后呢像鉴权、监控、安全、限流、日志、缓存等等方案都可以统一由网关实现。各个服务只需要专注于自己的业务实现就OK可以帮助其实现敏捷开发提升团队的迭代效率。常见的API网关有OpenResty, Kong, APISIX, Spring Cloud Gateway, Ocelot 等。Kong有哪些模块Kong的具体模块如下图所示最下面的两层是Nginx和OpenResty它的意思是kong是一款基于OpenResty (Nginx Lua) 编写的高可用、易扩展的API Gateway。我们可以直接把Kong理解成是Nginx但是Kong的功能不止于Nginx。DataStore层kong的配置文件可以支持化的存储在NoSQL中可选cassandra、postgreSQL。Plugin层如果想拓展kong的功能只需要提供对应的插件就行。有一些现成的插件可以直接用可以自定义插件。Restful层它支持通过Restful API的方式来操作操作和配置Kong管理nginx的配置文件。而且kong有专属的dashboard支持在可视化的界面下和Restful API交互实现对kong的可视化配置。Kong的组成架构Kong的具体组成部分如下图所示Kong的流量处理默认情况下Kong Gateway在其配置的代理端口8000和8443上监听流量。它评估传入的客户端API请求并将其路由到适当的后端API。在路由请求和提供响应时可以根据需要通过插件应用策略。例如在路由请求之前可能需要客户端进行身份验证。这带来了许多好处包括1由于Kong Gateway正在处理身份验证因此该服务不需要自己的身份验证逻辑。2该服务仅接收有效请求因此不会浪费周期来处理无效请求。3记录所有请求以集中查看流量。下一篇我们会通过Docker快速搭建一个Kong API Gateway环境来玩玩。参考资料闫观涛《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》风起云边《Kong - Overview》风一样的程序员《45张图带你从0玩转Kong Gateway》年终总结Edison的2021年终总结数字化转型我在传统企业做数字化转型C#刷题C#刷剑指Offer算法题系列文章目录.NET面试.NET开发面试知识体系.NET大会2020年中国.NET开发者大会PDF资料