一、API网关概念介绍

API 网关,即API Gateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的 API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题,统一在网关层将安全认证,流量控制,审计日志,黑白名单等实现。网关的下一层,是内部服务,内部服务只需开发和关注具体业务相关的实现。网关可以提供API发布、管理、维护等主要功能。开发者只需要简单的配置操作即可把自己开发的服务发布出去,同时置于网关的保护之下。

(▲图片版权来自网络,版权归作者所有。)

API Gateway网关使得搭建一个新的应用服务变得简单、快捷、高效,同时,开发者将精力更多放在和业务紧密相关的工作上。

二、kong简介

Kong是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目。由于Kong是基于Nginx的,所以可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。

Kong主要有三个组件:

  • Kong Server :基于nginx的服务器,用来接收API请求。
  • Apache Cassandra/PostgreSQL :用来存储操作数据。
  • Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。

Kong采用插件机制进行功能定制,插件集(可以是0或n个)在API请求响应循环的生命周期中被执行。插件使用Lua编写,目前已有几个基础功能:HTTP基本认证、密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API请求限流、请求转发以及nginx监控。

Kong 官网:https://getkong.org/ 插件介绍,帮助文档等。

Kong 源码:https://github.com/Mashape/kong

Kong UI管理工具:https://github.com/PGBI/kong-dashboard 浏览器UI管理工具

Kong 桌面管理工具:https://github.com/ajaysreedhar/kongdash 有linux版本,windows版本,mac版本。

三、社区资源和工具

安装KONG的方式

可以选择不同的方式进行安装 ->重要

第三方管理维护工具

资源

参考文献

参考文章1:KONG API Gateway-用户指南 https://github.com/cloudframeworks-apigateway/user-guide-apigateway#%E6%A1%86%E6%9E%B6%E8%AF%B4%E6%98%8E-%E4%B8%9A%E5%8A%A1

参考文章2:易观API网关—Kong分享篇https://www.analysys.cn/media/technology/detail/20014914/

参考文章3: Kong:Nginx支持的API管理解决方案https://sdk.cn/news/1596

转自:https://blog.csdn.net/li396864285/article/details/77371385

最新文章

  1. 【JUC】JUC锁框架综述
  2. [Keygen]IntelliJ IDEA 14.1.7
  3. 多线程NSInvocationOperation(NSOperationQueue)的基本用法
  4. Gym 100960G (set+树状数组)
  5. linux安装时提示发生不正常错误问题
  6. IOS 特定于设备的开发:获取和使用设备姿势(通过手机方向控制3d物体显示)
  7. C# 线程知识--使用Task执行异步操作
  8. 从ASP.NET Web API 2 (C#)开始说起
  9. ng1笔记
  10. LINUX 笔记-watch命令
  11. 传统javaweb 改成 Maven项目
  12. 学习爬虫Scrapy遇到的错误
  13. Java的快速失败和安全失败
  14. Linux基础三(软件安装管理)
  15. ROS学习笔记一(ROS的catkin工作空间)
  16. USACO 1.3 Ski Course Design - 暴力
  17. [转]JSON.stringify 详解
  18. java动态代码的实现以及Class的卸载 (转至http://dustin.iteye.com/blog/46393)
  19. [ 翻译]ruby rails相关的常见服务器
  20. JAVA学习2:Eclipse集成Maven

热门文章

  1. 如何评价一个VR体验设计?
  2. springcloud --- spring cloud sleuth和zipkin日志管理(spring boot 2.18)
  3. IDEA 学习笔记之 Spark/SBT项目开发
  4. scalikejdbc 学习笔记(3)
  5. git一步步上传自己的项目至github,及仓库更新
  6. springboot结合mybatis
  7. php企业微信获取员工userid以及打卡信息
  8. [ASP.NET Core 3框架揭秘] 依赖注入:控制反转
  9. 算法学习之剑指offer(八)
  10. java零碎知识(每种数据类型默认值,多大,取值范围)