一、简介

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

Kong,是由Mashape公司开源的,基于Nginx的API gateway。


二、特点

可扩展:支持分布式

模块化 功能:授权、日志、ip限制、限流、api 统计分析(存在商业插件Galileo等、也可自己研发)、请求转化、跨域(CORS)、其他功能通过lua编写插件实现。

...


三、调用流程

Once Kong is running, every request being made to the API will hit Kong first, and then it will be proxied to the final API. In between requests and responses Kong will execute any plugin that you decided to install, empowering your APIs. Kong is effectively going to be the entry point for every API request.

译文:Kong启动之后,每个请求先经过Kong,然后由Kong代理 访问最终的API。在请求和响应之间,Kong可以执行任何已配置的插件,达到增强APIs的目的。Kong作为每个API请求的入口。


// 四、Kong技术架构图


五、测试环境搭建

1 安装kong

https://getkong.org/install/

2 postgresql安装配置

http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

kong的postgresql数据库连接命令:psql -U kong -d kong -h 127.0.0.1 -p 5432

3 kong配置

https://getkong.org/docs/0.9.x/configuration/

4 kong启动

kong start -c /etc/kong/kong.conf --vv

遇到错误:Error: /usr/local/share/lua/5.1/pgmoon-mashape/init.lua:239: missing password, required for connect

解决方法:检查配置文件的是否存在pg_password配置。


六、使用示例

说明:Kong Admin API 默认口为8001

1 在kong中新增api

1.1命令

curl -i -X POST \

--urlhttp://localhost:8001/apis/\

-d 'name=getTeacherById' \

-d 'upstream_url=http://www.daydays.com/' \

-d 'request_path=/**/**/teacher.do'

1.2 原接口请

curl -i -X GET \

--urlhttp://www.daydays.com/**/**/teacher.do?fmid=1031

1.3 通过kong进行接口请求

curl -i -X GET \

--urlhttp://localhost:8000/**/**/teacher.do?fmid=1031

2 增加限速插件

2.1 命令

curl -X POSThttp://localhost:8001/apis/getTeacherById/plugins\

--data "name=rate-limiting" \

--data "config.second=2" \

--data "config.minute=2" \

--data "config.hour=10000"

//2.2 访问频率超过限制后,接口返回结果如下图:

3 访问控制

3.1 添加key-auth插件,命令如下:

curl -i -X POST \

--urlhttp://localhost:8001/apis/getTeacherById/plugins/\

--data 'name=key-auth'

//此时直接访问接口,将返回以下错误:

3.2 增加消费者:

curl -i -X POST \

--urlhttp://localhost:8001/consumers/\

--data "username=daydaysTeachApp"

3.3 为消费者配置证书

curl -i -X POST \

--urlhttp://localhost:8001/consumers/daydaysTeachApp/key-auth/\

--data 'key=daydaysTeachApp_randomNum123456'

通过key访问请求

curl -i -X GET   --urlhttp://localhost:8000/**/**/teacher?fmid=1031\

"apikey: daydaysTeachApp_randomNum123456"

4 在kong中删除api

curl -i -X DELETE \

--urlhttp://localhost:8001/apis/getTeacherById

七、参考资料

中文资料介绍:https://www.sdk.cn/news/1596

kong官网:https://getkong.org

github:https://github.com/Mashape/kong/

转自:https://www.jianshu.com/p/f9a2210f6722

API Gateway——KONG简单入门相关推荐

  1. 如何做服务编排/数据聚合?(使用Goku API Gateway实现)

    什么是服务编排/数据聚合? 服务编排/数据聚合 指的是可以通过一个请求来依次调用多个微服务,并对每个服务的返回结果做数据处理,最终整合成一个大的结果返回给前端. 例如一个服务是"查询用户预定 ...

  2. [云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 当前版本采用KONGv0.12.3 当我们决定对应用进行微服务改造时,应用客户端如何与微服务交互的问 ...

  3. Kong API Gateway 管理API详解

    Kong API Gateway 管理API详解 2018-09-25 /  Linuxops 版权说明:本文为博主原创,如果转载请注明来源.作为学习笔记,不能保证所有知识点是完全正确以及表达无误,用 ...

  4. Kong Api Gateway

    Kong Api Gateway 什么是API 网关 为什么是 Kong 安装Kong 通过包管理器来安装 启动Kong 配置文件详解 1.常规配置 2.Nginx注入配置 3.数据库存储配置 4.数 ...

  5. API Gateway(API网关)介绍

    API Gateway是一个服务器,也可以说是进入系统的唯一节点.这跟面向对象设计模式中的Facade模式很像.API Gateway封装内部系统的架构,并且提供API给各个客户端.它还可能有其他功能 ...

  6. API 网关 Kong 实战

    1.Kong 介绍 Kong 是一款基于 OpenResty(Nginx + Lua 模块)编写的高可用.易扩展的,由 Mashape 公司开源的 API Gateway 项目.Kong 是基于 NG ...

  7. Service Mesh 和 API Gateway 关系深度探讨

    前言 关于 Service Mesh 和 API Gateway 之间的关系,这个问题过去两年间经常被问起,社区也有不少文章和资料给出解答.其中不乏 Christian Posta 这样的网红给出过深 ...

  8. API网关Kong系列(一)初识

    最近工作需要,加上国内Kong的文章相对缺乏(搜来搜去就那么两篇文章),而且官方文档在某些demo上也有一些过时的地方,遂提笔记录下这些,希望能有帮助. 先随大流介绍下KONG(主要参考官网): 官方 ...

  9. 开源API网关Kong基本介绍和安装验证

    本文将介绍开源API网关Kong.在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网 ...

最新文章

  1. 网页拼图游戏html代码,网页设计(一):拼图游戏
  2. 软件测试自学舞蹈简单,中舞网APP评测:舞蹈初学者必备的APP
  3. 收官礼 | 《神策 2018 数据驱动大会回顾专刊》发布,你要的干货,已打包!
  4. 乌班图linux配置yum仓库,Linux系统的仓库配置(yum、epel)与软件安装(wireshark,wget,nginx)...
  5. android StringBuilder的Capacity的使用
  6. 5.1 最小二乘法,左逆,投影矩阵
  7. StratoVirt在x86_64下的初体验
  8. [leetcode]15. 三数之和
  9. [原创]独立模式安装Hive
  10. idm种子资源下不动 idm种子怎么下载详细教程
  11. vscode插件版本的选择与安装
  12. lammps学习总结3
  13. 计算机怎样设置默认美式键盘,完美:如何在win10系统中将默认输入法设置为美式键盘...
  14. 如何制定有效的项目管理计划?
  15. c语言计算sum,C++ partial_sum(STL partial_sum)部分和计算方法详解
  16. 线性渐变 `-webkit-linear-gradient`
  17. Android UI
  18. 【摄影补光灯调光驱动方案】低亮度无频闪无抖动无极调光调色IC芯片 LED美颜灯升压恒流芯片FP7209 最大可驱动300W
  19. 【CVE-2021-4043】Linux本地提权漏洞复现
  20. 网络工程师学习笔记——RIP路由汇总实验配置精讲

热门文章

  1. Flume-ng运行出错: Caused by: java.net.BindException: 地址已在使用org.apache.flume.lifecycle.LifecycleSupervis
  2. 【HDU - 1045】Fire Net (dfs 或二分图)
  3. 【CodeForces - 1051A】Vasya And Password (构造,水题)
  4. Trie树(字典树)详细知识点及其应用
  5. 请输入“您的生日”,格式:yyyy-MM-dd,使用程序计算您已经来到这个世界多少天了。
  6. 我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法
  7. 阿里Java编程规约(注释)提炼
  8. 大数据学习(09)--Hadoop2.0介绍
  9. 《剑指Offer》36:二叉搜索树与双向链表
  10. 密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书