1.Kong 介绍

Kong 是一款基于 OpenResty(Nginx + Lua 模块)编写的高可用、易扩展的,由 Mashape 公司开源的 API Gateway 项目。Kong 是基于 NGINX 和 Apache Cassandra 或 PostgreSQL 构建的,能提供易于使用的 RESTful API 来操作和配置 API 管理系统,所以它可以水平扩展多个 Kong 服务器,通过前置的负载均衡配置把请求均匀地分发到各个 Server,来应对大批量的网络请求。

官网: https://konghq.com/

Kong 主要有三个组件:

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

  2. Apache Cassandra/PostgreSQL :用来存储操作数据。

  3. Kong dashboard:官方推荐 UI 管理工具,当然,也可以使用 restfull 方式 管理 admin api。

Kong 采用插件机制进行功能定制,插件集(可以是 0 或 N 个)在 API 请求响应循环的生命周期中被执行。插件使用 Lua 编写,目前已有几个基础功能:HTTP 基本认证、密钥认证、CORS(Cross-Origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API 请求限流、请求转发以及 Nginx 监控。

1.1 Kong 网关的特性

Kong 网关具有以下的特性:

  • 可扩展性: 通过简单地添加更多的服务器,可以轻松地进行横向扩展,这意味着您的平台可以在一个较低负载的情况下处理任何请求;

  • 模块化: 可以通过添加新的插件进行扩展,这些插件可以通过 RESTful Admin API 轻松配置;

  • 在任何基础架构上运行: Kong 网关可以在任何地方都能运行。您可以在云或内部网络环境中部署 Kong,包括单个或多个数据中心设置,以及 public,private 或 invite-only APIs。

1.2 Kong 网关架构

  1. Kong 核心基于 OpenResty 构建,实现了请求/响应的 Lua 处理化;

  2. Kong 插件拦截请求/响应;

  3. Kong Restful 管理 API 提供了 API/API 消费者/插件的管理;

  4. 数据中心用于存储 Kong 集群节点信息、API、消费者、插件等信息,目前提供了 PostgreSQL 和 Cassandra 支持,如果需要高可用建议使用 Cassandra;

  5. Kong 集群中的节点通过 gossip 协议自动发现其他节点,当通过一个 Kong 节点的管理 API 进行一些变更时也会通知其他节点。每个 Kong 节点的配置信息是会缓存的,如插件,那么当在某一个 Kong 节点修改了插件配置时,需要通知其他节点配置的变更。

2.Kong 环境搭建

2.1 基于 centos7 搭建

环境: PostgreSQL 9.6 + CentOS 7

2.1.1 PostgreSQL

下载地址:https://www.postgresql.org/download/linux/redhat/

安装命令

选择 PostgreSQL 9.6 + CentOS 7 后获得安装方式:

启动 postgresql 后查看状态:

配置 postgresql

为了安全以及满足 Kong 初始化的需求,需要创建一个 Linux 用户 kong,并创建对应的 PostgreSQL 用户 kong 和数据库 kong

# 创建一个 Linux 用户 `kong`

复制代码

PostgreSQL 有四种身份认证方式:

  • trust:凡是连接到服务器的,都是可信任的。只需要提供 PostgreSQL 用户名,可以没有对应的操作系统同名用户。

  • password 和 md5:对于远程访问,需要提供 PostgreSQL 用户名和密码。对于本地连接,提供 PostgreSQL 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别,就是远程访问时传输的密码是否用 md5 加密。

  • ident:对于远程访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录对于本地连接,实际上使用了 peer。

  • peer:对于本地访问,通过客户端操作系统内核来获取当前系统登录的用户名,并作为 PostgreSQL 用户名进行登录。

默认配置下,我们无法在本地或者远程使用 PostgreSQL 用户名和密码直接连接,因为本地使用 peer 认证方式,远程使用 ident 认证方式。解决方法比较简单,将本地和远程的认证方式修改成 trust 或者 password 即可。

修改 /var/lib/pgsql/9.6/data/pg_hba.conf 文件,注释掉所有默认配置,并添加一条 host all all 0.0.0.0/0 trust 默认,无论远程还是本地访问,任何 PostgreSQL 用户和数据库,都使用 trust 认证方式。

默认配置下,PostgreSQL 只允许本地连接,所以我们需要修改 /var/lib/pgsql/9.6/data/postgresql.conf 文件,添加 listen_address 配置项为 *,允许远程连接。

修改完成后,执行 sudo systemctl restart postgresql-9.6 命令,重启 PostgreSQL 数据库。

通过 Navicat 可以连接到 postgresql 数据库:

2.1.2 安装 kong

centos7 下安装 kong:

https://download.konghq.com/gateway-1.x-centos-7/Packages/k/

安装命令

sudo yum install kong-1.5.1.el7.amd64.rpm </code>

复制代码

配置 kong

Kong 的默认配置文件是 /etc/kong/kong.conf.default,使用 cp /etc/kong/kong.conf.default /etc/kong/kong.conf 命令,复制一份新的配置文件。

复制完成后,修改 /etc/kong/kong.conf 配置文件,设置使用 PostgreSQL 数据库。

执行 kong migrations bootstrap -c /etc/kong/kong.conf 命令,进行 Kong 的 PostgreSQL 数据库的表初始化。

navicat 中可以看到表信息

执行 kong start -c /etc/kong/kong.conf 命令,执行 Kong 的启动。

<code data-type="codeline">#启动命令</code><code data-type="codeline">kong start -c /etc/kong/kong.conf </code><code data-type="codeline"># 停止命令</code><code data-type="codeline">kong stop</code><code data-type="codeline"># 重新加载kong</code><code data-type="codeline">kong reload</code></pre>

复制代码

启动成功时,会看到 Kong started 日志。

默认情况下,Kong 绑定 4 个端口:

  • Proxy 8000:接收客户端的 HTTP 请求,并转发到后端的 Upstream。

  • Proxy 8443:接收客户端的 HTTPS 请求,并转发到后端的 Upstream。

  • Admin 8001:接收管理员的 HTTP 请求,进行 Kong 的管理。

  • Admin 8444:接收管理员的 HTTPS 请求,进行 Kong 的管理。

# 请求 Proxy 端口

复制代码

2.2 基于 docker 搭建

前提:准备好 docker 环境

image

Kong 安装有两种方式一种是没有数据库依赖的 DB-less 模式,另一种是 with a Database 模式。我们这里使用第二种带 Database 的模式,因为这种模式功能更全。

2.2.1 docker 安装 Kong

构建 Kong 的容器网络

首先我们创建一个 Docker 自定义网络,以允许容器相互发现和通信。在下面的创建命令中 kong-net 是我们创建的 Docker 网络名称,当然你可以使用你认为合适的名称。

docker network create kong-net
复制代码

搭建数据库环境

Kong 目前使用 Cassandra(Facebook 开源的分布式的 NoSQL 数据库) 或者 PostgreSql,你可以执行以下命令中的一个来选择你的 Database。请注意定义网络 --network=kong-net

  • Cassandra 容器:
<code data-type="codeline">docker run -d --name kong-database \</code><code data-type="codeline">           --network=kong-net \</code><code data-type="codeline">           -p 9042:9042 \</code><code data-type="codeline">           cassandra:3</code></pre>

复制代码

  • PostgreSQL 容器:
<code data-type="codeline">docker run -d --name kong-database \</code><code data-type="codeline">           --network=kong-net \</code><code data-type="codeline">           -p 5432:5432 \</code><code data-type="codeline">           -e "POSTGRES_USER=kong" \</code><code data-type="codeline">           -e "POSTGRES_DB=kong" \</code><code data-type="codeline">           postgres:9.6</code>

复制代码

这里有个小问题。如果你使用的是 PostgreSQL,想挂载卷持久化数据到宿主机。通过 -v 命令是不好用的。这里推荐你使用 docker volume create 命令来创建一个挂载。

docker volume create kong-volume

复制代码

然后上面的 PostgreSQL 就可以通过 - v kong-volume:/var/lib/postgresql/data 进行挂载了。

<code data-type="codeline">docker run -d --name kong-database \</code><code data-type="codeline">           --network=kong-net \</code><code data-type="codeline">           -p 5432:5432 \</code><code data-type="codeline">           -v kong-volume:/var/lib/postgresql/data \</code><code data-type="codeline">           -e "POSTGRES_USER=kong" \</code><code data-type="codeline">           -e "POSTGRES_DB=kong" \</code><code data-type="codeline">           -e "POSTGRES_PASSWORD=kong"  \</code><code data-type="codeline">           postgres:9.6</code>

初始化或者迁移数据库

我们使用 docker run --rm 来初始化数据库,该命令执行后会退出容器而保留内部的数据卷(volume)。

<code data-type="codeline">docker run --rm \</code><code data-type="codeline"> --network=kong-net \</code><code data-type="codeline"> -e "KONG_DATABASE=postgres" \</code><code data-type="codeline"> -e "KONG_PG_HOST=kong-database" \</code><code data-type="codeline"> -e "KONG_PG_PASSWORD=kong" \</code><code data-type="codeline"> -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \</code><code data-type="codeline"> kong:latest kong migrations bootstrap</code>

navicat 中可以看到表信息

启动 Kong 容器

完成初始化或者迁移数据库后,我们就可以启动一个连接到数据库容器的 Kong 容器,请务必保证你的数据库容器启动状态,同时检查所有的环境参数 -e 是否是你定义的环境。

<code data-type="codeline"> --network=kong-net \</code><code data-type="codeline"> -e "KONG_DATABASE=postgres" \</code><code data-type="codeline"> -e "KONG_PG_HOST=kong-database" \</code><code data-type="codeline"> -e "KONG_PG_PASSWORD=kong" \</code><code data-type="codeline"> -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \</code><code data-type="codeline"> -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \</code><code data-type="codeline"> -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \</code><code data-type="codeline"> -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \</code><code data-type="codeline"> -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \</code><code data-type="codeline"> -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \</code><code data-type="codeline"> -p 8000:8000 \</code><code data-type="codeline"> -p 8443:8443 \</code><code data-type="codeline"> -p 8001:8001 \</code><code data-type="codeline"> -p 8444:8444 \</code><code data-type="codeline"> kong:latest</code></pre>

验证

可通过 curl -i http://192.168.65.200:8001/ 或者浏览器调用 http://192.168.65.200:8001/ 来验证 Kong Admin 是否联通 。

2.3 安装 Kong 管理 UI

Kong 企业版提供了管理 UI,开源版本是没有的。但是有很多的开源的管理 UI ,其中比较好用的是 Konga。项目地址: https://github.com/pantsel/konga

Konga 主要是用 AngularJS 写的,运行于 nodejs 服务端。具有以下特性:

  • 管理所有 Kong Admin API 对象。

  • 支持从远程源(数据库,文件,API 等)导入使用者。

  • 管理多个 Kong 节点。使用快照备份,还原和迁移 Kong 节点。

  • 使用运行状况检查监视节点和 API 状态。

  • 支持电子邮件和闲置通知。

  • 支持多用户。

  • 易于数据库集成(MySQL,postgresSQL,MongoDB,SQL Server)。

docker volume create konga-postgresql

<code data-type="codeline">docker run -d --name konga-database  \</code><code data-type="codeline">  --network=kong-net  \</code><code data-type="codeline">                    -p 5433:5432 \</code><code data-type="codeline">                    -v  konga-postgresql:/var/lib/postgresql/data  \</code><code data-type="codeline">                    -e "POSTGRES_USER=konga"  \</code><code data-type="codeline">                    -e "POSTGRES_DB=konga" \</code><code data-type="codeline">                    -e "POSTGRES_PASSWORD=konga"  \</code><code data-type="codeline">                    postgres:9.6</code>

初始化 PostgreSQL 数据库

<code data-type="codeline">docker run --rm  --network=kong-net  \</code><code data-type="codeline">                       pantsel/konga:latest -c prepare -a postgres -u postgres://konga:konga@konga-database:5432/konga</code>

复制代码

相关命令解读:

到此 Konga 的数据库环境就搞定了,通过 Navicat 可以查看到 konga 数据库及其数据表。

环境参数

Konga 还有一些可配置的环境参数:

启动 Konga

通过以下命令就可以启动 Konga 容器了

<code data-type="codeline">docker run -d -p 1337:1337  \</code><code data-type="codeline">               --network kong-net  \</code><code data-type="codeline">               -e "DB_ADAPTER=postgres"  \</code><code data-type="codeline">               -e "DB_URI=postgres://konga:konga@konga-database:5432/konga"  \</code><code data-type="codeline">               -e "NODE_ENV=production"  \</code><code data-type="codeline">               -e "DB_PASSWORD=konga" \</code><code data-type="codeline">               --name konga \</code><code data-type="codeline">               pantsel/konga</code>

运行完后,如果成功可以通过 http://192.168.65.200:1337/ 链接到控制台。

通过注册后进入,然后在 dashboard 面板里面添加 Kong 的管理 Api 路径 http://ip:8001

3. Kong 快速开始

3.1 动态负载均衡实现

nginx 下负载均衡配置

upstream tulingmall-product-upstream {

复制代码

通过 Kong Admin API 进行上述的负载均衡的配置

https://docs.konghq.com/enterprise/2.4.x/admin-api/

创建 upstream 和 target

调用 Kong Admin API /upstreams ,创建名字为 demo-upstreamupstream

$ curl -X POST http://127.0.0.1:8001/upstreams --data "name=tulingmall-product-upstream"

调用 Kong Admin API /upstreams/{upstream}/targets ,创建 tulingmall-product 服务对应的 2 个 target 。注意, {upstream} 路径参数为 upstream 的名字。

<code data-type="codeline"># 192.168.65.190:8866 对应的 target</code><code data-type="codeline">$ curl -X POST http://127.0.0.1:8001/upstreams/tulingmall-product-upstream/targets --data "target=192.168.65.190:8866" --data "weight=100"</code><code data-type="codeline"># 192.168.65.190:8867 对应的 target</code><code data-type="codeline">$ curl -X POST http://127.0.0.1:8001/upstreams/tulingmall-product-upstream/targets --data "target=192.168.65.190:8867" --data "weight=100"</code>

创建 service 和 route

调用 Kong Admin API /services ,创建名字为 tulingmall-productservice 。host 参数,用于设置对应的 upstream 的名字。

curl -X POST http://127.0.0.1:8001/services --data "name=tulingmall-product" --data "host=tulingmall-product-upstream" --data "path=/pms"

调用 Kong Admin API services/${service}/routes ,创建一个请求路径为 pathroute 。注意, {service} 路径参数,为 service 的名字。

curl -X POST http://localhost:8001/services/tulingmall-product/routes --data "name=tulingmall-product-route" --data "paths[]=/pms"

复制代码

测试

curl http://127.0.0.1:8000/pms/productInfo/42

3.2 kong 限流配置

Kong 提供了 Rate Limiting 插件,实现对请求的 限流 功能,避免过大的请求量过大,将后端服务打挂。

Rate Limiting 支持秒/分/小时/日/月/年多种 时间维度 的限流,并且可以组合使用。例如说:限制每秒最多 100 次请求,并且每分钟最多 1000 次请求。

Rate Limiting 支持 consumercredentialip 三种 基础维度 的限流,默认为 consumer 。例如说:设置每个 IP 允许每秒请求的次数。计数的存储,支持使用 localclusterredis 三种方式进行存储,默认为 cluster

  • local :存储在 Nginx 本地,实现单实例限流。

  • cluster :存储在 Cassandra 或 PostgreSQL 数据库,实现集群限流。

  • redis :存储在 Redis 数据库,实现集群限流。

Rate Limiting 采用的限流算法是 计数器 的方式,所以无法提供类似令牌桶算法的平滑限流能力。

配置 Rate Limiting 插件

调用 Kong Admin API services/${service}/plugins ,创建 Rate Limiting 插件的配置:

# 服务上启用插件
  • name 参数,设置为 rate-limiting 表示使用 Rate Limiting 插件。

  • config.second 参数,设置为 1 表示每秒允许 1 次请求。

  • config.limit_by 参数,设置为 ip 表示使用 IP 基础维度的限流。

    也可以通过 konga UI 操作添加 rate-limiting 插件

测试

请求超过阈值,会被 kong 限流

3.3 Basic Auth 身份认证

配置 Basic Auth 插件

# 在服务上配置插件

通过 konga UI 为路由添加 basic-auth 插件

创建用户并添加 Basic 凭证

测试

3.4 JWT 身份认证

配置 JWT 插件

调用 Kong Admin API services/${service}/plugins ,创建 JWT 插件的配置:

<code data-type="codeline">curl -X POST http://127.0.0.1:8001/services/tulingmall-product/plugins \</code><code data-type="codeline">    --data "name=jwt"</code>
  • name 参数,设置为 jwt 表示使用 JWT 插件。
# 查看插件列表

复制代码

通过 konga UI 操作添加 jwt 插件

测试

请求被 kong 安全拦截

创建 Consumer

调用 Kong Admin API consumers ,创建一个 Consumer 消费者:

<code data-type="codeline">$ curl -i -X POST http://localhost:8001/consumers/ \</code><code data-type="codeline">    --data "username=fox"</code>

创建 consumer 的 jwt 凭证

调用 Kong Admin API consumers/{username}/{plugin}生成 该消费者的 JWT 信息:

  • {username} 路径参数,为 Consumer 的用户名。

  • {plugin} 路径参数,为 Plugin 的插件名。

可以指定算法 algorithmiss 签发者 key ,密钥 secret ,也可以省略,会自动生成。

<code data-type="codeline">$ curl -i -X POST http://localhost:8001/consumers/fox/jwt/ \</code><code data-type="codeline">-d "algorithm=HS256" \</code><code data-type="codeline">-d "key=fox123" \</code><code data-type="codeline">-d "secret=uFLMFeKPPL525ppKrqmUiT2rlvkpLc9u"</code>

复制代码

<code data-type="codeline">{</code><code data-type="codeline">    "rsa_public_key":null,</code><code data-type="codeline">    "algorithm":"HS256",</code><code data-type="codeline">    "id":"3dc4d177-8a7a-4edc-bc88-ee7aa2447fc7",</code><code data-type="codeline">    "tags":null,</code><code data-type="codeline">    "consumer":{</code><code data-type="codeline">        "id":"8e7fb82d-68ef-4f2b-a30c-613866378525"</code><code data-type="codeline">    },</code><code data-type="codeline">    "secret":"uFLMFeKPPL525ppKrqmUiT2rlvkpLc9u",</code><code data-type="codeline">    "created_at":1625803149,</code><code data-type="codeline">    "key":"fox123"</code><code data-type="codeline">}</code>

复制代码

查看 fox 的 jwt 凭证

curl -X GET localhost:8001/consumers/fox/jwt

复制代码

image

生成 jwt token

业务服务器根据 kong 生成的 jwt 凭证中的 algorithm、key(iss)、secret 进行 token 的演算和下发。请求 鉴权接口 需携带 Authorization: Bearer jwt 进行请求。测试可以在 https://jwt.io/ 中通过 Debugger 生成 jwt token

获取到 jwt token 令牌:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJmb3gxMjMifQ.hqHGVujYheALxXpEVtgisA5pPTGfQYet0IKadnYPtj8

复制代码

测试

<code data-type="codeline">curl http://192.168.65.200:8000/pms/productInfo/42 \</code><code data-type="codeline">    -H "Authorization: Bearer  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJmb3gxMjMifQ.hqHGVujYheALxXpEVtgisA5pPTGfQYet0IKadnYPtj8"</code>

复制代码

3.5 黑白名单配置

配置插件

# 在服务上启用插件

复制代码

  • config.whitelist :白名单,逗号分隔的 IPs 或 CIDR 范围。

  • config.blacklist :白名单,逗号分隔的 IPs 或 CIDR 范围。

<code data-type="codeline">curl -X POST http://127.0.0.1:8001/routes/ad515a07-bae4-4b54-a927-35bc6c85565b/plugins \</code><code data-type="codeline">    --data "name=ip-restriction"  \</code><code data-type="codeline">    --data "config.whitelist=192.168.65.200"</code>

复制代码

测试

当前本机器 IP 地址为: 192.168.65.103

将本机 ip 加入到白名单


http://www.taodudu.cc/news/show-3832026.html

相关文章:

  • 【报错】打包不成功没因为TEST文件
  • Bad owner or permissions on /home/cxhpc/.ssh/config
  • Unity关联VS,打开时出现compiler问题
  • java 图片压缩 图片添加水印 thumbnailator javafx
  • 2.利用gradle启动项目
  • linux文件前三行如何排序,Sort工具Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。sort 常见选项b 忽略每行前面开始出...
  • 前端三大件--JavaScript详解
  • 第一阶段-精英大赛
  • linux中mongodb的安装配置及基础使用
  • 数据类型及其字符串方法
  • Javaweb入门到实战(三)过滤器、拦截器、jdbc详解
  • java中级面试题(java中级面试题及答案)
  • CentOS8配置MySQL双主互备(安装centos8及MySQL)
  • 多线程详解---(多案例实战)
  • Integer缓存问题分析
  • 剑指offer系列(44)翻转单词顺序列
  • 爆肝3万5千字的Java学习笔记(超详细的java)
  • 批量新建文件
  • 敲下第一篇blog,愿我的未来不再迷茫
  • 双电梯调度程序
  • Java NIO学习笔记
  • 开源API网关Kong
  • kongkong
  • 打开ENVI5.3时显示缺失idl.dll解决方法
  • 8583例子
  • html简单右侧客服,浮动在网页右侧的简洁QQ在线客服
  • 关于UML的一些学习
  • 《裸婚时代》迅雷快车全集下载【30集全】普清
  • mongodb 集群Replica Set搭建
  • npm-whoami

API 网关 Kong 实战相关推荐

  1. API网关Kong(二):Kong与Kubernetes集成的方法

    作者: 李佶澳   转载请保留:原文地址   发布时间:2018-09-30 16:07:13 +0800 说明 先说组成 控制平面与数据平面 CustomResourceDefinitions 开始 ...

  2. 开源API网关Kong基本介绍和安装验证

    本文将介绍开源API网关Kong.在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网 ...

  3. 开源syslog服务器_开源API网关Kong基本介绍和安装验证

    今天准备介绍下开源API网关Kong,在Gtihub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选型的时候基本也会选择Kon ...

  4. API网关Kong(三):功能梳理和插件使用-基本使用过程

    作者: 李佶澳   转载请保留:原文地址   发布时间:2018-10-10 14:37:53 +0800 说明 Kong的Admin API Kong定义的资源之间的关联关系 使用过程了解 先了解下 ...

  5. 开源API网关Kong

    开源API网关Kong Kong 是一个在 Nginx 运行的 Lua 应用程序,由 lua-nginx-module 实现.Kong 和 OpenResty 一起打包发行,其中已经包含了 lua-n ...

  6. Api网关Kong集成Consul做服务发现及在Asp.Net Core中的使用

     1622219047536 写在前面   Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下 ...

  7. 原 docker(22):使用docker 搭建网关,Mashape API 网关 Kong,安装dashboard,和pgadmin4

    [其他docker相关分类]: https://blog.csdn.net/freewebsys/article/category/3103827 本文的原文连接是: http://blog.csdn ...

  8. 企业安全建设之API网关kong的搭建

    背景: 1.近年来,微服务架构在大中型企业中的应用越来越广泛.在解决了单体架构所带来的负责性高.部署慢.创新性低的问题的同时,也带来了一些新的安全问题.在微服务的架构中,一个大的应用会被拆分成多个小的 ...

  9. 高性能API网关Kong介绍

    本文关键词:高性能.API网关.Kong.微服务​​​​​​​ 1.Introduction API网关是随着微服务(Microservice)概念兴起的一种架构模式.原本一个庞大的单体应用(All ...

最新文章

  1. Windows10使用技巧
  2. 想学python-为什么现在那么多人想学Python?
  3. POJ-1094 Sorting it All Out
  4. http --- 网关、隧道、中继
  5. linux mysql 修改root密码_Mac下重置mysql的root密码
  6. ICPC 2019-2020 North-Western Russia Regional Contest 补题部分
  7. java动态代理_Java动态代理
  8. python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)
  9. iphone如何信任软件_如何在越狱后 iPhone 上多开软件?
  10. jdk8 mysql安装教程_Linux系统:centos7下安装Jdk8、Tomcat8.5、MySQL5.7环境
  11. Python爬取小说网站页面制作电子书
  12. SAS Visual Analytics(VA)安装教程
  13. html5红外遥控,自己写的单片机万能红外遥控解码
  14. 英语单词记忆(词缀 / 后缀)
  15. 第三阶段应用层——1.7 数码相册—电子书(5)—多线程支持多输入
  16. MATLAB绘制四面体和三维彩带图
  17. 【转载】为什么样本方差(sample variance)的分母是 n-1?
  18. 众人给诺基亚支招 Android提议何时了?
  19. COM组件 ATL的创建和调用
  20. c语言单片机温度调节系统设计,基于单片机的温度控制器系统总体设计方案

热门文章

  1. 牛客小白月赛8(口胡和一些瞎想)
  2. html练习11:案例仿制
  3. 采用艾恩asp上传的角本
  4. Android性能优化一篇文章搞定
  5. 关于后台管理linkbutton按钮几个重要属性的理解
  6. pod库报C++头文件file not found问题
  7. 车辆网络安全的未来(上):车辆开发中的威胁分析、风险评估和安全设计、漏洞分析
  8. php之间实现跳转并传值
  9. layer-list方式自定义progressbar
  10. 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--运动的火柴人