介绍

upstream 就是一个虚拟的服务。可用于配置多个target目标服务时实现负载均衡的效果。

注意:service的host指的就是upstream的name。

同时upstream提供了一个health check方法,用于检查target目标服务是否健康。以此控制启用或禁用target目标服务

 

和upstream关联的kong模块:service ,target

 

主要参数:algorithm 负载算法:round-robin(默认)consistent-hashing, or least-connections

healthchecks.active.http_path 健康检查路径:默认/,该地址是指在目标服务器上,适用于目标服务器的所有请求

 

命令

1、add upstream

方法 post

api:/upstreams

 

2,list upstream ,retrieve upstream

方法:get

api:/upstreams

/upstreams/upstream id or name

/targets/{target host:port or id}/upstream   关联指定target目标服务的upstream

 

 

3,update upstream

方法:patch

api:/upstreams/{upstream name or id}

/targets/{target host:port or id}/upstream

 

4,create or update upstream

方法:put

api:/upstreams/{upstream name or id}

/targets/{target host:port or id}/upstream

5,delete

方法:delete

api:/upstreams/{upstream name or id}

/targets/{target host:port or id}/upstream

 

健康检查 health check

kong会发起对配置在upstream上的所有target进行健康检查,若检查失败,将会暂时移除不健康的target服务。

恢复之后会再次加入。具体参数可在upstream参数中配置。

检查结果主要为一下四大类(官网介绍)

  • If a Target fails to be activated in the balancer due to DNS issues, its status displays as DNS_ERROR.
  • When health checks are not enabled in the Upstream configuration, the health status for active Targets is displayed as HEALTHCHECKS_OFF.
  • When health checks are enabled and the Target is determined to be healthy, either automatically or manually, its status is displayed as HEALTHY. This means that this Target is currently included in this Upstream’s load balancer execution.
  • When a Target has been disabled by either active or passive health checks (circuit breakers) or manually, its status is displayed as UNHEALTHY. The load balancer is not directing any traffic to this Target via this Upstream.

上述HEALTHY 、HEALTHCHECKS_OFF情况,target目标可以被转发请求,其他两类不被负载转发。

查看:get方法。api:/upstreams/{name or id}/health/


 

人生在世,杂事七八;饭要少吃,事要多知;抽个时间,总结一下;乐在分享,自在提升 

posted on 2019-11-29 10:11  总结造就再进步  阅读(2672)  评论(0编辑  收藏  举报