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