kong API gateway
参考:https://www.cnblogs.com/chenjinxi/p/8724564.html
一、简介
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
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配置
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 \
1.3 通过kong进行接口请求
curl -i -X GET \
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 \
七、参考资料
中文资料介绍:https://www.sdk.cn/news/1596
kong官网:https://getkong.org
作者:peng66cheng
链接:https://www.jianshu.com/p/f9a2210f6722
来源:简书
kong API gateway的更多相关文章
- Docker安装Kong API Gateway并使用
我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~ 1 简介 Kong不是一个简单的产品,本文讲的Kong主要指的是Kong API Gateway,即 ...
- 关于kong | API Gateway
目录 为什么需要 API 网关(more) kong的概念 为什么使用Kong Kong 的管理方式 高可扩展性的背后-插件机制 [前言]: Kong是一个云原生,高效,可扩展的分布式 API 网关. ...
- API Gateway - KONG 安装与配置
简介 Kong,是由Mashape公司开源的,基于Nginx的API gateway 特点 可扩展,支持分布式 模块化 功能:授权.日志.ip限制.限流.api 统计分析(存在商业插件Galileo等 ...
- API Gateway : Kong
what problems 多个服务要写自己的log,auth,对于比较耗时的,有时还要高流量限制. solution intro 单点部署的情况: why not just haproxy log ...
- API gateway 之 kong 基本操作 (三)
一.演示环境准备 1.nginx配置 [root@nginx conf.d]# pwd /etc/nginx/conf.d [root@nginx conf.d]# ls conf_bak kong_ ...
- API gateway 之 kong 基本介绍 (一)
一.API网关概念介绍 API 网关,即API Gateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能.高可用的 API托管服务,从而帮助服务的开发者便捷地对外提供服务, ...
- Kong:Nginx支持的API Gateway管理解决方案
Kong的主要功能 Kong可灵活扩展:只要增添更多的服务器实例,它就能横向扩展,毫无问题,那样你可以支持更多流量,同时确保网络延迟很短. Kong可在任何地方运行:它可以部署在单个或多个数据中心环境 ...
- 谈谈微服务中的 API 网关(API Gateway)
前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探 ...
- 聊聊 API Gateway 和 Netflix Zuul
最近参与了公司 API Gateway 的搭建工作,技术选型是 Netflix Zuul,主要聊一聊其中的一些心得和体会. 本文主要是介绍使用 Zuul 且在不强制使用其他 Neflix OSS 组件 ...
随机推荐
- 将Word,PDF文档转化为图片
#region 将Word文档转化为图片 /// <summary> /// 将Word文档转化为图片 /// </summary> /// <param name=&q ...
- pytest.4.Fixture
From: http://www.testclass.net/pytest/fixture/ 我们可以简单的把Fixture理解为准备测试数据和初始化测试对象的阶段. 一般我们对测试数据和测试对象的管 ...
- Bitmap BitmapData
var sp:Sprite=new Sprite(); sp.graphics.beginFill(0xffccdd); sp.graphics.drawRect(0,0,100,100); sp.g ...
- Spring-framework应用程序启动loadtime源码分析笔记(二)——@Transactional
@Transactional标识类或方法,使方法被执行时使用事务方式执行,这里只讨论PROXY方法增强方法.使用@EnableTransactionManagement,默认model=AdviceM ...
- PAT 乙级 1043 输出PATest(20) C++版
1043. 输出PATest(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个长度不超过10000 ...
- tomcat中class和jar的加载顺序(转)
https://blog.csdn.net/lipei1220/article/details/53924799 加载顺序: 1. $java_home/lib 目录下的java核心api 2. $j ...
- 为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容
在开发时,会遇到是要HTML来做UI,是要js与C++进行交互. 在加载完页面后,一些电脑中会出现“为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容”(用IE打开,自 ...
- c#类 对象 构造函数 析构函数——面向对象
类: 也是复杂数据类型 也是需要我们先定义出类型,才能使用它的数据 对象: 是通过模板类实例化出来的个体,具有具体的属性和行为(方法),对象是不能索引到静态方法. 对象的生命周期 构造—— 使用—— ...
- psql: could not connect to server: No such file or directory&&PGHOST
由于环境变量 PGHOST配置不当引起的 postgres@pgdb-> psql psql: could not connect to server: No such file or dire ...
- Kafka参数详解
一.相关参数配置 System 系统参数 #唯一标识在集群中的ID,要求是正数. broker.id=0 #服务端口,默认9092 port=9092 #监听地址,不设为所有地址 host.name= ...