kong網關調研文檔(走世界翻譯官)

kong簡介:

Kong是一款基於Nginx_Lua模塊寫的高可用,易擴展由Mashape公司開源的API Gateway項目。因爲Kong是基於Nginx的,因此能夠水平擴展多個Kong服務器,經過前置的負載均衡配置把請求均勻地分發到各個Server,來應對大批量的網絡請求。---官方描述說的比較牽強,不容易理解其含義,通俗理解就是集合插件的API網關第三方,相似於集成應用。webmin.wdcp.phpstudy--等。php

在咱們玩轉kong以前,咱們先了解一下api網關。html

API 網關,即API Gateway,是大型分佈式系統中,爲了保護內部服務而設計的一道屏障,能夠提供高性能、高可用的 API託管服務,從而幫助服務的開發者便捷地對外提供服務,而不用考慮安全控制、流量控制、審計日誌等問題,統一在網關層將安全認證,流量控制,審計日誌,黑白名單等實現。網關的下一層,是內部服務,內部服務只需開發和關注具體業務相關的實現。網關能夠提供API發佈、管理、維護等主要功能。開發者只須要簡單的配置操做便可把本身開發的服務發佈出去,同時置於網關的保護之下。java

Kong主要有三個組件:python

  • Kong Server :基於nginx的服務器,用來接收API請求。
  • Apache Cassandra/PostgreSQL :用來存儲操做數據。
  • Kong dashboard:官方推薦UI管理工具,固然,也可使用 restfull 方式 管理admin api。

Kong採用插件機制進行功能定製,插件集(能夠是0或n個)在API請求響應循環的生命週期中被執行。插件使用Lua編寫,目前已有幾個基礎功能:HTTP基本認證、密鑰認證、CORS( Cross-origin Resource Sharing,跨域資源共享)、TCP、UDP、文件日誌、API請求限流、請求轉發以及nginx監控。linux

Kong 官網:https://getkong.org/ 插件介紹,幫助文檔等。nginx

Kong 源碼:https://github.com/Mashape/kong git

Kong UI管理工具:https://github.com/PGBI/kong-dashboard 瀏覽器UI管理工具github

Kong 桌面管理工具:https://github.com/ajaysreedhar/kongdash 有linux版本,windows版本,mac版本。web

社區資源和工具docker

安裝KONG的方式

能夠選擇不一樣的方式進行安裝 ->重要

第三方管理維護工具 

資源

 

以上是官方知識彙總以及我的總結經驗,若有不明白可發留言或郵件探討。

如下是基於本公司微服務api-gateway針對使用kong調研文檔,詳細以下

ong 是一個現成 的 api gateway 的解決方案,它在 nginx 上進行了開發。

        api gateway 的實現方式有不少種,好比說 JVM 上能夠用基於NIO 的框架好比Netty,Vertx,Spring Reactor,JOSS Undertow。如今一個比較流程的沒有基於 JVM 的就是 NodeJs。其餘的還有 Nginx Plus。

   如下介紹 Kong 的使用。

  • 3.1 安裝 Kong

  • 3.2 加入 API

3.1 安裝 Kong

     參考:https://getkong.org/install/ ,裏面寫得比較詳細了,可是要預先安裝一個 Cassandra 數據庫(介紹:http://cassandra.apache.org/)。安裝以後,Kong 項目會監控兩個端口,一個是 8000,一個是 8001。 8000端口是能夠給用戶訪問,就是說用戶發送請求先到 Kong 項目的 8000 端口,而後Kong 項目幫你轉到你的後端應用api。 8001 端口是管理端口,好比說,管理員能夠經過 8001端口來獲得你加入過的 api。

3.2 加入 API

     參考文檔:https://getkong.org/docs/0.5.x/admin-api/ , 裏面介紹了 api 的管理,包括 增刪查改。下面介紹我第一次 使用時 還有有些不清楚的點:

3.2.1  列出 所加過的 api

curl localhost:8001/apis/  

3.2.2 加入 api

單個加入:

curl -i -X POST --url http://localhost:8001/apis/ --data 'upstream_url=http://camp.uats.cc' --data 'request_path=login' 


上面這段命令表示:

  • --url:http://localhost:8001/apis/ 固定的,加入 api 就得寫這個,表示給 kong管理。

  • upstream_url:表示咱們的網站。至關於一個請求前綴。

  • request_path:就是具體咱們的 api。

   利用request_host 部署所有的 api:

curl -i -X POST --url http://localhost:8001/apis/ --data 'upstream_url=http://183.131.76.124:4100/' --data         'request_host=183.131.76.122'


3.2.3 刪除 api

curl -i -X DELETE localhost:8001/apis/00f90ca9-cf2d-4830-c842-3b90f6cd08af

後面 這個串表示 加入的api的 id。

相關文章
相關標籤/搜索