作者:Forezp 
來源:公衆號方誌朋


Kong是一個可擴展的開源API層(也稱爲API網關或API中間件)。 Kong運行在任何RESTful API的前面,並通過插件擴展,它們提供超出核心平臺的額外功能和服務。

Kong最初是在Mashape建立的,用於爲其API Marketplace提供超過15,000個API和Microservices,併爲超過20萬的開發者每月生成數十億個請求。 今天,Kong被用於小型和大型組織的關鍵任務部署

kong api gateway 初體驗


使用的軟件

  • 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 gateway 初體驗


在kong管理界面創建一個api接口:

kong api gateway 初體驗


填寫相關的參數即可,創建完成後如下:

kong api gateway 初體驗


在瀏覽器上訪問:http://192.168.86.128:8000/hi

hi forezp,i am from port:8762

添加api限流插件,一個ip一分鐘10次。

訪問超過10次後,會拒絕訪問。

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

kong api gateway 初體驗


再次訪問: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
相關文章