當前位置: 妍妍網 > 碼農

36.9K star!又一款優雅高效管理 API 的計畫!

2024-02-10碼農

* 戳上方藍字「 開源先鋒 」關註我

推薦閱讀:


大家新年好,我是開源君!

今天給大家介紹一下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