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 组件 ...
随机推荐
- CentOS6 配置静态IP
1.首先配置网络连接方式 VMware选择编辑->虚拟网络编辑器->VMnet0桥接模式 2.配置网卡 vim /etc/sysconfig/network-scripts/ifcfg-e ...
- JVM异常之:堆溢出OutofMemoryError
1.堆溢出 Java 堆内存的OutOfMemoryError异常是实际应用中最常见的内存溢出异常情况.出现Java 堆内存溢出时,异常堆栈信息“java.lang.OutOfMemoryError” ...
- Java学习——使用Static修饰符
程序功能:通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. package Pack1; public class Try { public static vo ...
- [转][MVC4]
<add key="vs:EnableBrowserLink" value="false"/> 把这个加到 <appSettings /> ...
- 使用LiteOrm删除数据对象失败的坑
使用 LiteOrm.newSingleInstance(BaseApplication.getInstance(), Constant.DB_NAME); 在不同进程中创建了两次对象,在保存和删除的 ...
- Linux常用命令1-50(持续更新中)
1:echo $PATH (打印出PATH变量的值) 不同用户下面的PATH值有可能不一样 echo 有显示打印的意思 $ 表示后面的是一个变量的意思 PATH 变量 /usr ...
- 第三章: web界面操作
3.1 zabbix的web安装 3.1.1 使用浏览器访问 http://10.0.0.61/zabbix/setup.php 在检测信息时,可查看具体的报错信息进行不同的解决 选择mysql数据库 ...
- gulp_css2js
var gulp = require('gulp'); var rename = require('gulp-rename'); var concat = require('gulp-concat') ...
- 在线学习和在线凸优化(online learning and online convex optimization)—凸化方法4
一些在线预测问题可以转化到在线凸优化框架中.下面介绍两种凸化技术: 一些在线预测问题似乎不适合在线凸优化框架.例如,在线分类问题中,预测域(predictions domain)或损失函数不是凸的.我 ...
- 1-Lombok工具使用
1.先给Eclispe安装Lombok插件 首先下载 lombok-1.16.6.jar 这个jar包 存放在系统任意盘里面 我这里是放在 c:\lombok-1.16.6.jar 运行命令 点 ...