API网关主要应用在微服务架构上,用于统一管理服务通用的功能(监控,限流,鉴权等)

API网关很多,选择入门kong是因为kong是开源的还可以给服务提供各种插件,使用方便

简单理解:Kong = OpenResty + Nginx + Lua

kong基本组成如下:

admin api

通过API 管理 + 加载插件

LUA

OpenResty是基于Ngnix和Lua

Nginx

kong的规则创建和执行顺序:

规则创建顺序: upstream-> targets->service->route

node ip+port == pod ip +8080

规则执行顺序: route (+path)-> service (host = upstream 的name) -> targets

upstream 是对上游服务器的抽象,用于负载均衡;target 代表了一个物理服务,是 ip + port 的抽象,也就是目标服务器;service 是抽象层面的服务,他可以直接映射到一个物理服务(host 指向 ip + port),也可以指向一个 upstream 来做到负载均衡;route 是路由的抽象,他负责将实际的 request 映射到 service。

1.创建upstream:

curl -X POST ip:8001/upstreams -d ‘name=upstream-auth’

2.关联目标地址:

curl -X POST ip:8001/upstreams/upstream-auth/targets -d ‘target=ip:port ‘ -d ‘weight=100’

upstream 和 target :1 对 n

3.配置service,通过host与upstream关联

curl -i -X POST ip:8001/services/ –data ‘name=auth’ –data ‘host=upstream-auth’

service 和 upstream :1 对 1 或 1 对 0 (service 也可以直接指向具体的 target,相当于不做负载均衡)

4.配置路由

curl -i -X POST ip:8001/services/auth/routes –data ‘name=route-auth’ –data ‘hosts[]=up.hello’ –data ‘paths[]=/h/auth-srv’

service 和 route:1 对 n

访问方式:http://up.hello:8000/h/auth-srv

Kong默认监听端口:

8000,监听来自客户端的HTTP流量,转发到你的upstream服务上。

8001,Kong的HTTP监听的api管理接口。

8443,监听HTTPS的流量,功能跟8000一样。可以通过配置文件禁止。

8444,Kong的HTTPS监听的API管理接口。

kong的使用方案:

 

 

 

                                                                 如有雷同自行理解为转载至雷同文章

 转自:https://www.cnblogs.com/yj-lm/p/12084129.html