网关工作流程图
2021-06-24 16:49:22 0 举报
网关zuul工作流程,包括负载均衡策略和工作原理
作者其他创作
大纲/内容
RibbonLoadBalancerClient
权重轮训策略WeightedResponseTimeRule
ribbon负载均衡请求
没30秒一次,维护serverList
最优策略BestAvailableRule
获取并发请求最小的实例通过LoadBalancerStats保存的服务实例,获取实例的连接数,拿出最小的连接实例
Pinger(内部类)
while (server == null && count++ 10) { int serverCount = allServers.size();int nextServerIndex = incrementAndGetModulo(serverCount); server = allServers.get(nextServerIndex);}调用incement方法来每次增加数组下标获取服务
while(server==null){ List upList = lb.getReachableServers(); int index = rand.nextInt(serverCount); server = upList.get(index);}获取所有的存活服务,获取一个随机数,从List中获取一个服务若服务一直为空,会出现空轮训
zuul网关
run方法,监听请求
http request
调用chooseServer方法
chooseServeraddServersmarkServerDowngetAllServersgetReachableServers
RibbonRoutingFilter
线性轮训策略RoundRobinRule
随机策略:
客户端负载均衡,根据负载均衡策略选择一个服务
pingServers方法,通过rest请求返回码判断是否正常存货
负载均衡策略
BaseLoadBalancer
1.DynamicServerWeightTask 定时任务计算权重2.maintainWeights 计算权重,计算每个实例的平均响应时间,跟总响应时间坐差,每个实例算出一个时间区间3.选择实例 随机生成一个0-最大权重的随机数,与权重区间对比获得具体实例
继承zuulFilter,会拦截经过zuul的所有请求
0 条评论
下一页