One - One Code All

Blog Content

kong网关介绍

Linux-Mac 架构设计 WEB   2020-12-10 21:20:47

API 网关

如果每个服务都要实现包括认证、统计、安全校验等功能,会有很多重复的工作。API 网关的作用就是把这些公共的东西抽取出来,如右图,下面的这几个服务,每个服务都只关心自身业务相关的东西,和业务无关的东西全部都丢到API 网关上,即 API 网关就是把公共的东西如统计、安全、限流、限速、缓存等提取出来做了一个中间层。


简介

Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展(Lua)功能。插件在 API 请求响应循环的生命周期中被执行。Kong是一个在Nginx运行的Lua应用程序,由lua-nginx-module实现。Kong和OpenResty一起打包发行,其中已经包含了lua-nginx-module。OpenResty不是Nginx的分支,而是一组扩展其功能的模块。

  • Kong 有两个主要组件:

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

    • Apache Cassandra:用来存储操作数据。

  • 基础功能:KHTTP 基本认证、密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API 请求限流、请求转发以及 nginx 监控。


查询

  • 查看节点信息

    curl  http://localhost:8001

    部分返回字段含义:

    node_id : 正在运行的kong节点的uuid,当kong启动时随机生成,每次kong重启时这个uuid都会变

    availabel_on_server : kong节点上安装的plugins的名称

    enabled_in_cluster : kong节点中启用的插件,即在数据库中生成了对应存储表

  • 查询节点状态

    curl  http://localhost:8001/status

    部分返回字段含义:

    total_requests : 客户端请求总数

    connections_active : 包括等待连接的活动客户端连接的当前数量

    connections_accepted : 接受的客户端连接的总数

    connections_handled : 处理连接的总数。一般来说,除非达到一定的资源限制,否则参数值与接受值相同

    connections_reading : 当前Kong正在读取请求头的连接数

    connections_writing : NGINX将响应写入客户端的连接的当前数量

    connections_waiting : 等待请求的空闲客户端连接的当前数量

    reachable : 反映数据库连接状态的布尔值。注意,此标志不反映数据库本身的健康状况

  • 查询路由列表

    curl -i -X GET   --url  http://localhost:8001/routes/
  • 查询一个服务关联的所有路由

    GET /services/{service name or id}/routes
    curl -i -X GET --url  http://localhost:8001/services/example-serviceA/routes
  • 查询消费者列表

    curl -i -X  GET /consumers/{username or id}


  • 查看服务

    curl -i -X  GET  http://localhost:8001/services


  • 查看服务name的服务属性

    GET http://localhost:8001/services/{service id/name}
  • 查看与指定route id绑定的服务。

    GET http://localhost:8001/routes/{routes id}/service
  • 查看指定plugin 插件(/plugins/{plugin id}/service)的服务

    GET http://localhost:8001/plugins/{plugin id}/service



上一篇:Spring Boot常用注解梳理
下一篇:同一局域网ping不通

The minute you think of giving up, think of the reason why you held on so long.