【Zuul2】zuul集成ribbon完成服务通信和负载均衡
目录
Zuul2服务通信
超时相关
默认超时配置
自定义超时配置
负载均衡
Zuul2服务通信
描述:zuul2通过Ribbon完成客户端负载均衡以及与服务器群集进行通信。
zuul2的通信是集成Ribbon实现的,在Origin中集成Ribbon基本配置(例如IClientConfig)以完成功能接入,在loadbanace层将ribbion与netty结合用来抉择下层客户端服务器。
zuul2集成ribbon core结构图:
zuul2集成 ribbon loadbalanacer结构图:
超时相关
默认超时配置
- 默认连接超时时间ReadTimeout为2S
- 默认读超时时间ConnectTimeout为5S
- 超时后的默认重试次数MaxAutoRetriesNextServer为1次 (它使用MaxAutoRetriesNextServer,应该与ribbon的NIWSServerListClassName相关参数有关系,同时在zuul2官网wiki有相关描述指定本配置控制重试)
可以在ribbon源码中找到相应配置信息:
自定义超时配置
#指定全局连接超时ConnectTimeout配置
ribbon.ConnectTimeout=100#指定全局读超时ReadTimeout配置
ribbon.ReadTimeout=1000#指定全局重试配置
ribbon.MaxAutoRetriesNextServer=0#指定origin连接超时ConnectTimeout配置(覆盖全局)
<origin>.ribbon.ConnectTimeout=100#指定origin读超时ReadTimeout配置(覆盖全局)
<origin>.ribbon.ReadTimeout=10000#指定origin重试配置(覆盖全局)
<origin>.ribbon.MaxAutoRetriesNextServer=1
ribbon相关配置项及默认值:https://github.com/Netflix/ribbon/blob/master/ribbon-core/src/main/java/com/netflix/client/config/CommonClientConfigKey.java
负载均衡
ribbon负载均衡的七种算法
RandomRule:随机算法实现RoundRobinRule:轮询负载均衡策略,依次轮询所有可用服务器列表,遇到第一个可用的即返回RetryRule :先按照RoundRobinRule策略获取服务,如果获取服务失败会在指定时间内重试AvaliabilityFilteringRule: 过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值) BestAvailableRule :会先过滤掉由于多次访问故障二处于断路器跳闸状态的服务,然后选择一个并发量最小的服务WeightedResponseTimeRule: 根据响应时间分配一个weight,响应时间越长,weight越小,被选中的可能性越低ZoneAvoidanceRule: 复合判断server所在区域的性能和server的可用性选择server
后续将会持续完善ribbon、制定ribbon负载均衡算法以满足流量调度需求。
【Zuul2】zuul集成ribbon完成服务通信和负载均衡相关推荐
- SpringCloud Feign 源码底层如何调用Ribbon实现服务调用的负载均衡
在SpringCloud微服务中调用都不是直接用Ribbon进行服务调用,因为那样的化项目中的代码量会增加很多,微服务之间的调用是用Feign来进行调用,下面就是普通的一个接口调用例子 这样就可以进行 ...
- 微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理
微服务架构的实现首先需要提供一些基础组件,这些基础的功能性组件主要包括服务之间的通信.面向事件驱动的架构设计方法.负载均衡.服务路由.API网关和分布式配置中心等,我们对这六大基本组件进行初步的分析定 ...
- SpringCloud微服务:Ribbon和Feign组件,实现服务调用的负载均衡
一.Ribbon简介 1.基本概念 Ribbon是一个客户端的负载均衡(Load Balancer,简称LB)器,它提供对大量的HTTP和TCP客户端的访问控制. 2.负载均衡简介 目前主流的负载均衡 ...
- 【微服务】Eureka+Ribbon实现注册中心与负载均衡
文章目录 前言 1.微服务引入 1.1.相关概念 1.2.软件架构的演进 1.2.1.单体架构 1.2.2.垂直架构 1.2.3.分布式架构 1.2.4.SOA架构 1.2.5.微服务架构 1.3.S ...
- Springcloud、Nacos 服务注册、负载均衡Ribbon、http客户端Feign
SpringCloud是基于SpringBoot的一整套实现微服务的框架.它提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组 ...
- SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析
SpringCloud理论技术 概述 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...
- 服务发现与负载均衡 dubbo zk原理
服务发现与负载均衡 拓展阅读 : dubbo 原理概念图 2016-03-03 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 内容整理自文章&qu ...
- 关于服务发现和负载均衡,你想知道的都在这儿
问题缘由 单机时代,传统软件大多是单体/巨石架构(Monolithic).大家往一个代码仓库提交CODE,这会导致应用膨胀,难以理解和修改,以及扩展受限,无法按需伸缩等诸多问题.单体架构怎么解决多人合 ...
- 基于go的微服务搭建(七) - 服务发现和负载均衡
第七节: 服务发现和负载均衡 原文地址 转载请注明原文及翻译地址 这篇文章将关注两个微服务架构的重要部分:服务发现和负载均衡.和他们是如何帮助我们2017年经常要求的横向扩展容量的 简介 负载均衡和出 ...
最新文章
- Ms Sql Server 基本管理脚本(1)
- windows笔记-内存映射文件
- 那些你不知道的单词小秘密
- 腾讯2013年校园招聘笔试试题
- Python的3种执行方式
- [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?
- 隐式调用 Intent 大全
- LeetCode之Island Perimeter
- JSON处理1.1:100DaysOfJavaEE8
- IT 事业发展:树立自己的品牌
- 【免费毕设】ASP.NET+SQL通用作业批改系统设计(源代码+论文)
- 快照(Snapshot)
- 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
- MedicineCare-可行性分析
- python 网络小说爬取2
- 软件测试工程师怎么写okr,测试工程师提高质量的OKR该如何写?
- 笔记:戴蒙德模型中的折旧
- 如何识别企业内的“千里马”?
- word首页之前插入空白页没有页眉页脚且不影响后续页码
- 没有乔布斯的MacWorld :8个瞬间
热门文章
- Windows使用ROS机器人操作系统全面资料汇总
- tp5 批量更新多条记录_Thinkphp怎么批量更新数据
- 基于树莓派摄像头的冷水珊瑚礁科考
- 弘辽科技:掌握淘宝直通车的精准操作方法,把车开好超简单!
- python质数列_Python-质数和斐波那契数列
- 如何学习嵌入式? 嵌入式之路从入门到放弃....
- 神秘农场新背包java_Mystery Ranch神秘农场2018年户外背包系列产品一览
- Ubuntu系统安装操作失误,导致开机一直进入grub界面的解决方法
- RocketMQ压测报告书
- Python:披萨店主页程序练习