* 戳上方藍字「 開源先鋒 」關註我
推薦閱讀:
大家新年好,我是開源君!
今天給大家介紹一下Kong這個開源計畫。
Kong是由Mashape開發並於2015年開源的API閘道器。它基於OpenResty(Nginx + Lua模組)和Apache Cassandra/PostgreSQL構建,提供易於使用的RESTful API來操作和配置API管理系統。
Kong能夠水平擴充套件,透過前置的負載均衡配置把請求均勻地分發到各個Server,應對大量網路請求。
效能特色
Kong的效能特色主要體現在其可延伸性和模組化上。
它可以透過簡單地添加更多伺服器來輕松實作橫向擴充套件,這意味著平台可以在較低負載的情況下處理任何請求。
Kong的擴充套件性主要透過外掛程式機制實作,已整合了眾多外掛程式,如金鑰認證、CORS、檔日誌、API請求限流等。
此外,Kong可以在任何基礎架構上執行,無論是雲環境還是企業網路絡。
Kong的整體架構:
Kong閘道器API介面的典型請求工作流程:
Kong Dashboard界面:
如何快速使用
要在Docker環境中部署Kong,可以按照以下步驟操作:
1、構建Kong的容器網路:
docker network create kong-net
2、搭建資料庫環境(以PostgreSQL為例):
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
3、初始化或遷移資料庫:
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
kong:1.5.1 kong migrations bootstrap
4、啟動Kong容器:
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:1.5.1
完成這些步驟後,Kong就已經安裝並執行起來了。我們可以透過存取
http://localhost:8001/
來檢視Kong是否執行正常。
Kong作為一個API閘道器,不僅提供了強大的API管理功能,還具備了集群水平擴充套件的能力,從而提升整體吞吐量。
它基於OpenResty,可以在現有的基礎上進行擴充套件,實作更復雜的特性。
雖然Kong預設缺少一些特性,如API級別的超時、重試、fallback策略等,但這些都可以透過Lua語言進行客製和擴充套件。
總的來說,Kong是一個功能豐富、適合企業級套用的API閘道器解決方案。
關於計畫更多細節,感興趣的自行去計畫地址檢視。
計畫地址:
https://github.com/Kong/kong