Kong的DB-less模式

一、背景

API Gateway的开源项目虽然很多,但也是良莠不齐,Kong在其中算是一个表现不错的项目,但是由于Kong使用了关系型数据库,带来了一些额外的运维成本,另一方面,a也不适合作为网关引擎集成到企业的解决方案里来。

2019/03/27,Kong 1.1.0版本中引入了一个新特性 DB-less Mode,这样,我们在使用Kong的过程中,就可以只使用配置文件,而无需再维护一个关系型数据库。

终于,Kong可以作为我们API治理平台的网关引擎了~

二、安装Kong

CentOS系统可以使用下面的命令来完成安装

sudo yum update -y
sudo yum install -y wget
wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
sudo yum update -y
sudo yum install -y kong

三 启动Kong

  1. 创建配置文件
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
  1. 修改配置文件/etc/kong/kong.conf
sed -i "/^#database/i\database = off" /etc/kong/kong.conf
  1. 启动kong
kong start
  1. 查看默认配置
[root@labs ~]# curl http://127.0.0.1:8001/config
{"config":"_format_version: '1.1'\n"}

可以发现,默认情况下是没有配置任何apis

  1. 使用yaml文件创建接口
cat > apis.yml <<EOF
_format_version: "1.1"
services:
 - name: httpbin-service
   url: http://httpbin.org/
   # Entities can store tags as metadata
   tags:
   - httpbin
   # Entities that have a foreign-key relationship can be nested:
   routes:
   - name: httpbin-route
     paths:
     - /
   plugins:
   - name: correlation-id
     config:
       header_name: Kong-Request-ID
       generator: tracker
       echo_downstream: true
EOF
  1. 检测配置文件是否合法
kong config parse apis.yml
  1. 上传配置文件
curl http://127.0.0.1:8001/config -F "config=@apis.yml"
  1. 测试接口
curl -v http://127.0.0.1:8000/ip
image.png

上图中可以得到几个信息:

  1. Kong运行成功:返回了header: X-Kong-Upstream-LatencyX-Kong-Proxy-Latency
  2. 接口转发成功,service和router都配置正确
  3. 插件配置成功,返回了header: Kong-Request-ID
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Kong 是 Mashape 开源的高性能高可用 API 网关和 API 管理服务层。它基于 OpenResty ...
    meng_philip123阅读 13,044评论 0 6
  • 简介 在这篇文档中,我们会通过详细介绍Kong的路由功能和内部工作原理来涵盖其代理功能,Kong通过两个配置项对外...
    fossilman阅读 10,886评论 0 1
  • 同伴今天送了我一句话,眼泪是上帝的礼物,想哭就哭吧,伴着音乐给自己疗愈,瞬间泪奔。 学会和自己的...
    鱼儿飞11阅读 3,723评论 0 0
  • 一 全局对象Window1ECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全...
    Lady旺财阅读 1,733评论 0 0

友情链接更多精彩内容