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

使用的软件

  • 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,就可以进入了。

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

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

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

hi forezp,i am from port:8762

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

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

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

再次访问: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

kong api gateway 初体验相关推荐

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

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

  2. Kong API Gateway 管理API详解

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

  3. Kong Api Gateway

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

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

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

  5. 【Elasticsearch】极限网关 INFINI Gateway 初体验

    1.概述 转载:https://elasticsearch.cn/article/14173 最近在elasticsearch中文社区看到medcl大神写的一篇文章<Elasticsearch ...

  6. Kong API Gateway 配置文件详解

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 一.前言 Kong配置文件是Kong服务的核心文件,它配置了Kong以怎么的方式运行,并且依赖于这个配置生成Nginx的配置文件,本文通过解读Kong ...

  7. Spring Cloud Alibaba - 23 Gateway初体验

    文章目录 概述 网关的作用 官网 来个栗子 step1 搞依赖 step2 搞注解 (gateway没有注解) step3 搞配置 其他工程 & 验证 参数解读 spring.cloud.ga ...

  8. Flink Table Api SQL 初体验,Blink的使用

    概述 Flink具有Table API和SQL-用于统一流和批处理. Table API是用于Scala和Java的语言集成查询API,它允许以非常直观的方式组合来自关系运算符(例如选择,过滤和联接) ...

  9. kong API gateway(三):consumers

    # 官文---https://getkong.org/docs/0.11.x/getting-started/adding-consumers/ # 通过Dashboard添加---http://lo ...

最新文章

  1. LoadRunner 技巧之 手动关联与预关联
  2. Linux下取代top的进程管理工具 htop
  3. 福布斯:2018年将改变世界的九股科技大趋势
  4. 通过 Object.prototype.toString.call() 进行类型判断
  5. 三. H.264简介
  6. C++二进制文件读写操作
  7. Hadoop的HA机制
  8. 【Android】资源加载过程
  9. oracle rman备份慢,诊断Oracle RMAN备份慢的原因
  10. 【codeforces 534B】Covered Path
  11. 计算机语言中block,plo(计算机编程语言)_百度百科
  12. 可区分英文字母:lL、iI、0Oo的系统字体
  13. 微信公众号推广分享二维码,关联扫码关注的客户
  14. 2655 切木头(二分)
  15. C++(基础) 每日一题 4.编写一个函数print 打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num,name,scor[3]3门课的成绩。
  16. 第三届全国中医药院校大学生程序设计竞赛题解
  17. 期末测验: 课程水平综合测验 (第10周)
  18. 基于光流场的运动原理分析与代码实现
  19. js根据银行卡号判断属于哪个银行并返回银行卡类型
  20. Unity 相机自适应不同分辨率

热门文章

  1. 通过httpmodule获取webapi返回的信息
  2. 一个推荐系统,实现完整的设计-在百度搜索关键词推荐案例
  3. Linux sendmail发送邮件失败诊断案例(一)
  4. fieldset 使用小案例
  5. Apache Tomcat 7.x 概述
  6. C# 创建控制台应用程序
  7. 【ACM】杭电OJ 1181
  8. 【MATLAB】数据分析之数据插值
  9. LeetCode刷题-2
  10. 超前探秘首个国产元宇宙百度“希壤”:率先实现10万人同屏互动