Kong 网关简介及简单使用

Kong 网关简介及简单使用

1、kong 网关简介

Kong是在客户端和微服务端转发 API 通信的 API 网关,可以通过插件扩展功能。Kong 主要有两个重要的的组件:

  • Kong Server:基于 nginx 的服务器,用来接收 API 请求

  • Apache Cassandra:用于存储操作数据

我们可以通过增加更多的 Kong Server服务器对 Kong 服务进行水平扩展,通过前置的负载均衡器向这些机器发送分发请求。根据文档描述,两个 Cassandra 节点就足以支撑绝大多数情况,但如果网络非常拥挤,可以适当考虑增加更多的节点。

对于我们来说,Kong 中最为重要的一个特性就是可以通过插件扩展已有功能,这些插件在 API 请求响应循环的生命周期内被执行。插件使用 Lua 编写,而且 Kong 还有如下几个基础功能:

HTTP 基本认证,密匙认证,CORS(Cross-origin Resource Sharing,跨域资源共享),TCP,UDP,文件日志,API请求限流,请求转发及 Nginx 监控等等

2、docker 部署 kong

官方文档:Docker

设置网络

 docker network create kong-net

安装数据库, PostgreSQL and Cassandra,推荐使用 postgres(版本号可自由选择)

 docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               postgres:11.1-alpine

准备 kong 数据

 docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:latest kong migrations bootstrap

启动kong,设置postgres 数据库

 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:latest

:8000 Kong 在该端口上侦听来自客户端的传入 HTTP 流量,并将其转发到上游服务

:8443 Kong 在其上侦听传入的 HTTPS 流量。此端口具有与端口 8000 类似的行为,不过他仅支持 HTTPS通信,可以通过配置文件禁用此端口

:8001 用于配置 Kong 侦听的 admin api

:8444 admin api 在其上侦听 HTTPS 流量

检查 kong 是否正常运行

 curl -i http://localhost:8001/

安装图形化界面

 docker run -d --name kong-dashboard \
     --network=kong-net \
     --link kong:kong \
     -p 8081:8080 \
     pgbi/kong-dashboard:v2 migrations up

3、配置服务

向 kong添加 API,我们需要先添加一个 service,即使用 kong 用来指代其管理的上游 API 和微服务的名称

我们将创建一个指向Mockbin API的服务。Mockbin是一个“回声”类型的公共网站,它将返回的请求返回给请求者,作为响应。这有助于了解Kong如何代理您的API请求。

在开始对服务提出请求之前,需要为其添加一条路由。路线指定到达香港后如何(以及是否)将请求发送到其服务。单个服务可以具有多个路由。

配置服务和路线后,您将可以使用它们通过Kong发出请求。

Kong 在port上公开了RESTful Admin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值