网关中间件--Kong

710 阅读2分钟

Kong

Kong的简介

  • Kong的官方网址:konghq.com/
  • Kong定义: Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于Nginx和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
  • Kong优势:
    • 利用工作流自动化和现代 GitOps 实践
    • 分散应用程序/服务并过渡到微服务
    • 创建蓬勃发展的 API 开发人员生态系统
    • 主动识别与 API 相关的异常和威胁
    • 保护和管理 API/服务,并提高整个组织的 API 可见性
    • 插件市场丰富,可以降低开发成本
    • 可扩展性,可以编写lua脚本来定制自己的参数验证权限验证等操作
    • 强性能,基于OpenResty
    • 便捷性能扩容
    • 负载均衡健康检查
  • Kong的组件
    1. Kong Server :基于nginx的服务器,用来接收API请求。
    2. Apache Cassandra/PostgreSQL :用来存储操作数据,推荐使用PostgreSQL 。
    3. Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。

Kong安装

1、docker安装
  docker network create kong-net
2、使用postgres数据库
        docker run -d --name kong-database \
                       --network=kong-net \
                       -p 5432:5432 \
                       -e "POSTGRES_USER=kong" \
                       -e "POSTGRES_DB=kong" \
                       postgres:9.6
3、启动Kong-service
    docker run -d --name kong \
         --network=kong-net \
         -e "KONG_DATABASE=postgres" \
         -e "KONG_PG_HOST=kong-database" \
         -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
         -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
         -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
         -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
         -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
         -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
         -p 8000:8000 \
         -p 8443:8443 \
         -p 8001:8001 \
         -p 8444:8444 \
         kong:1.0.3

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
d82c2b7729ae        kong:1.0.3          "/docker-entrypoin..."   3 seconds ago       Up 2 seconds        0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp   kong
9b7f5a9c808f        postgres:9.6        "docker-entrypoint..."   26 seconds ago      Up 25 seconds       0.0.0.0:5432->5432/tcp                                               kong-database
4、调用地址,输出
curl -i http://localhost:8001/