kong的基本知识总结(service、route、upstream、target)

KONG的基本知识总结

UPSTREAM

upstream就是一个虚拟的服务,可以用于配置多个target用来实现负载均衡。
当我们部署集群时,一个单独的地址不足以满足我们的时候,我们可以使用Kong的upstream来进行设置。
在service中的host可指定为upstream对象,upstream添加多个target来实现负债均衡。
注意:service的host指的就是upstram的name。

--添加upstream
curl -i -X POST --url http://localhost:8001/upstreams/ --data 'name=nhs.wilmar.service'

SERVICE

服务实体,顾名思义,是您自己的上游服务的抽象,这个是官方文档的原话。其实理解起来就是就是我们自己定义的上游服务(upstraem),
通过Kong匹配到相应的请求要转发的地方,Service 可以与下面的Route进行关联,一个Service可以有很多Route,
匹配到的Route就会转发到Service中。
新增service后,kong会自动分配一个id值,该id为service的唯一标识。可用于后期修改、查看以及绑定route、upstream。
service 是抽象层面的服务,他可以直接映射到一个物理服务(target)(host 指向 ip + port),也可以指向一个upstream来做到负载均衡。

post/certificates/{certificate name or id}/services

其中certificate name or id就是kong生成的一个id值

--通过 Admin API 添加 Service
curl -i -X POST \
  --url http://localhost:8001/services/ \
  --data 'name=example-service' \
  --data 'url=http://mockbin.org'

ROUTE

首先有一个大概的理念就是,route 是路由的抽象,他负责将实际的 request 映射到 service。
实际上是通过定义一些规则来匹配客户端的请求,每个路由都会关联一个service,并且service可以关联多个route
当匹配到客户端的请求时,每个请求都会被代理到其配置的Service中。
Route作为客户端的入口,通过将Route和Service的松耦合,可以通过hosts path等规则的配置,最终让请求到不同的Service中。
例如,我们规定api.example.com 和 api.service.com的登录请求都能够代理到10.11.11.11:8000端口上,
那我们可以通过hosts和path来路由
首先,创建一个Service s1,其相应的host和port以及协议为http://10.11.11.11:8000
然后,创建一个Route,关联的Service为s1,其hosts为api.service.com, api.example.com,path为login
最后,将域名api.example.com和api.service.com的请求转到到我们的Kong集群上,
也就是我们上面一节中通过Nginx配置的请求地址
那么,当我们请求api.example.com/login和api.service.com/login时,
其通过Route匹配,然后转发到Service,最终将会请求我们自己的服务。

POST/services/{service name or id}/routes

TARGET

target 就是在upstream进行负载均衡的终端,当我们部署集群时,需要将每个节点作为一个target,
并设置负载的权重, 当然也可以通过upstream的设置对target进行健康检查。
当我们使用upstream时,整个路线是 Route >> Service >> Upstream >> Target
target 代表了一个物理服务,是 ip + port 的抽象;

以上就是kong中的最最核心的四个对象,他们之间关系如下:
upstream 和 target :1 对 n
service 和 upstream :1 对 1 或 1 对 0 (service 也可以直接指向具体的 target,相当于不做负载均衡)
service 和 route:1 对 n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值