个人博客纯净版:https://www.fangzhipeng.com/%E6%9E%B6%E6%9E%84/2017/09/17/kong-api-gateway.html

Kong是一个可扩展的开源API层(也称为API网关或API中间件)。 Kong运行在任何RESTful API的前面,并通过插件扩展,它们提供超出核心平台的额外功能和服务。
Kong最初是在Mashape建立的,用于为其API Marketplace提供超过15,000个API和Microservices,并为超过20万的开发者每月生成数十亿个请求。 今天,Kong被用于小型和大型组织的关键任务部署

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avVv8VY9-1570074828050)(https://getkong.org/assets/images/docs/kong-architecture.jpg)]

使用的软件

  • Unbuntu 虚拟机(有自己的服务器更好)
  • PostgreSQL
  • kong
  • kong-dashboard
  • docker
  • spring boot

安装 PostgreSQL

kong 需要使用到数据库,目前支持PostgreSQL和Cassandran ,我选择大象数据库,安装过程省略,可以参考这篇文章。
http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

安装完后建一个kong的用户、密码为kong、建一个kong 数据库:

CREATE USER kong; CREATE DATABASE kong OWNER kong;

安装kong

下载kong的源文件,下载地址:https://getkong.org/install/ubuntu/

下载完成之后会有这样一个文件kong-community-edition-0.11.0.*.deb,cd到这个文件的目录:

$ sudo apt-get update
$ sudo apt-get install openssl libpcre3 procps perl
$ sudo dpkg -i kong-community-edition-0.11.0.*.deb

配置kong

配置文档在这里:

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

复制配置文件:

$ cp /etc/kong/kong.conf.default /etc/kong/kong.conf

配置文件:

/etc/kong/kong.conf
/etc/kong.conf

打开配置文件,里面可以修改很多配置,修改数据库连接,用户名、密码

pg_host = 127.0.0.1             # The PostgreSQL host to connect to.
pg_port = 5432                  # The port to connect to.
pg_user = kong                  # The username to authenticate if required.
pg_password = kong              # The password to authenticate if required.
pg_database = kong

执行以下整合命令:

$ kong migrations up [-c /path/to/kong.conf]

启动kong :

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

打开浏览器访问:localhost:8001,浏览器显示了一大串关于kong的json字符串,则启动成功。
kong管理端口为8001, 监控端口为8000。

管理端口用rest api对api进行操作,文档地址:https://getkong.org/docs/0.8.x/admin-api

安装 kong-dashboard

kong管理端的第三方网页,地址:https://github.com/PGBI/kong-dashboard

支持npm启动,但是没有成功过,直接选择了docker启动。
要求先安装docker,docker启动镜像

# Start Kong Dashboard  8080端口启动
docker run -d -p 8080:8080 pgbi/kong-dashboard:v2# Start Kong Dashboard on a custom port  指定一个端口启动
docker run -d -p [port]:8080 pgbi/kong-dashboard:v2# Start Kong Dashboard with basic auth  8080端口启动,带一个用户基本认证
docker run -d -p 8080:8080 pgbi/kong-dashboard:v2 -a user=password

演示实例

在电脑上开启一个spring boot 工程有一个api接口为http://10.10.20.187:8762/hi

其实kong管理api有一系列的接口,直接用crul 就可以完成管理,但是有第三个kong-dashboard,我就用了kong-dashboard的管理界面进行操作。

在上一小节启动docker之后,打开网页http://192.168.86.128:8080(我unbuntu虚拟机的host为192.168.86.128),填写kong的管理urlhttp://192.168.86.128:8001,就可以进入了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iSyrzSdW-1570074828052)(http://fangzhipeng.oss-cn-hangzhou.aliyuncs.com/blog/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20170830111958.png?x-oss-process=style/caijai)]

在kong管理界面创建一个api接口:

填写相关的参数即可,创建完成后如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gYXq4fTJ-1570074828054)(http://fangzhipeng.oss-cn-hangzhou.aliyuncs.com/blog/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20170830112038.png?x-oss-process=style/caijai)]

在浏览器上访问:http://192.168.86.128:8000/hi

hi forezp,i am from port:8762

添加api限流插件,一个ip一分钟10次。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-edRMFckb-1570074828054)(http://fangzhipeng.oss-cn-hangzhou.aliyuncs.com/blog/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20170830112602.png?x-oss-process=style/caijai)]

访问超过10次后,会拒绝访问。

添加file-log的插件,文件存放目录为/temp/file.log :

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fqqcwDcH-1570074828055)(http://fangzhipeng.oss-cn-hangzhou.aliyuncs.com/blog/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20170830114620.png?x-oss-process=style/caijai)]

再次访问:http://192.168.86.128:8000/hi

可以在打开/temp/file.log看见里面的日志信息。

kong 支持了20中插件,插件地址:https://getkong.org/plugins/

参考资料

https://getkong.org/about/

http://www.cnblogs.com/SummerinShire/category/861287.html

http://www.jianshu.com/p/f9a2210f6722

https://yq.aliyun.com/articles/63180

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

更多阅读

史上最简单的 SpringCloud 教程汇总

SpringBoot教程汇总

Java面试题系列汇总


扫码关注公众号有惊喜

(转载本站文章请注明作者和出处 方志朋的博客)

Kong Api 初体验相关推荐

  1. Kong Api 初体验、Kong安装教程

    见:https://blog.csdn.net/forezp/article/details/79383631 Kong是一个可扩展的开源API层(也称为API网关或API中间件). Kong运行在任 ...

  2. ap接口 php_小白php API初体验 php api文档 php api接口开发 php web ap

    这里的php 写API其实就是指提供一个WebServiceWebSite : 1.以html格式响应返回 2.由用户通过浏览器来接入 WebService : 1.以json/Xml格式返回 2.由 ...

  3. Vue3 组合式API初体验

    目录 一.背景 二.什么是组合式API(Composition API ) 组合式API全景 为什么要引入组合式API `mixins` 的方式 域插槽的方式 组合式API的方式 结论 组合式API存 ...

  4. 2BizBox免费ERP API初体验

    简介 什么是2BizBox API 2BizBox是免费的ERP软件,也是一个开放的ERP平台.2BizBox面向开发者提供了完整的API二次开发接口,用于对2BizBox进行集成和二次开发.2Biz ...

  5. 在 npm 发布中文 API 初体验——中国历代纪元

    发布细节参考中文代码演示--创建 Node.js 模块过程,没什么意外. 数据来源是新华字典第 11 版附录"我国历代纪元简表",以后慢慢细化,先做个草稿. 现在只有一个接口: v ...

  6. Vue3通透教程【四】Vue3组合API初体验

    文章目录

  7. vue3.0 Composition API 上手初体验 使用 vue-router 构建多页面应用

    vue3.0 Composition API 上手初体验 使用 vue-router 构建多页面应用 前两讲,我们已经顺利的使用 vue3.0 将项目跑起来了.但是实在是过于简陋,目前我们几乎不可能开 ...

  8. java代码初体验_第一次Java 8体验

    java代码初体验 像世界其他地方一样,我深深地爱上了Slack. 为什么? 原因很多,但主要的原因是它提供了一种围绕通讯而非工具真正构建SDLC流程的新方法. 您认为这些天哪个更常见,杂乱无章的机智 ...

  9. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

最新文章

  1. linux 入门-1
  2. 获取进程号并赋值判断进程状态
  3. python --函数
  4. 数据结构铁轨问题_每天5分钟用C#学习数据结构(20)图 Part 1
  5. 二维温度场matlab编程,二维温度场重建算法(价钱可议)
  6. 【CodeForces - 1051D】Bicolorings (dp,类似状压dp)
  7. java实现Fmeasure计算_聚类结果的评估指标及其JAVA实现
  8. js函数、作用域和闭包
  9. SVN历史版本比较中文乱码
  10. java 身份证地址提取籍贯_从身份证号码中提取信息,这些方法请收好
  11. android文件管理器--界面效果二(layout)
  12. 引入html页面比较,前端页面如何引入公用的页面header和footer
  13. SQL语句更改数据库名,表名,列名
  14. 约瑟夫环c语言程序完整版,约瑟夫环的C语言实现
  15. 输入若干个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”
  16. 第三章 输入验证----tapestry教程Enjoying Web DevelopmenEnjoying Development翻译
  17. 绑定小程序数据助手,查看小程序的统计数据-微信小程序开发-视频教程22
  18. php header()改变图片尺寸,PHP改变图片的尺寸大小方法实例
  19. AVR单片机开发3——定时器T0 查询方式
  20. BeanDefinition的概述及使用

热门文章

  1. 《Fast Gradient Projection Method for Text Adversary Generation and Adversarial Training》论文学习笔记
  2. Android 和H5之间的交互-框架篇
  3. JAVA语句加叹号是什么意思_js函数前加分号和感叹号是什么意思?有什么用?
  4. 怎么用计算机来弄音乐,手把手教你用电脑玩音乐之Ableton!(基础篇1)
  5. windows7共享硬盘 虚拟机Mac访问windows7硬盘
  6. 虚拟机挂载其他虚拟机的硬盘
  7. VMware虚拟机中显示CPU不支持VT的解决方法
  8. 卫生统计学 SPSS操作 实验设计与分析傻瓜式操作指南.pdf
  9. 错误: 程序包androidx.annotation不存在_关于镇平县征集存在的错误或不规范外语标牌标识及用语的通知!...
  10. 优秀的开源项目-校园二手书商城小程序,可在线支付提现