当前位置: 欣欣网 > 码农

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