文章目录 ​​一、前言​​ ​​二、@LoadBalanced注解原理​​ ​​1、找找@LoadBalanced注解在哪​​ ​​1)@LoadBalanced流程图总述​​ ​​2)LoadBalancerAutoConfiguration自动装配类​​ ​​1>RestTemplateCustomizer从哪里来的?​​ ​​2>LoadBalancerInterceptor拦截器​​ ​​2、RestTemplate执行请求时的入口​​ ​​1)LoadBalancerClient何时注入到Spring容器​​ ​​2)LoadBalancerInt...

一、原理 以集群消费为例,集群消息在同一个消费组中只能有一个消费者可以消费到这条消息;假如最开始我们有一个叫TopicA的主体,TopicA中有8个MessageQueue;有个消费组ConsumerGroupA;在最开始的时候我们只启动一个consumer1消费者实例,即consumer1这一个消费实例将消费这8个queue,如下图: 然后我们在启动一个consumer2消费者实例,其会向Broker注册;这时broker发现ConsumerGroupA中新增了一个消费者实例,其会通知consumer1:嗨,哥们,你们这个消费组的实例发生了变化,你重新负载均衡一下吧。 这时consum...

一、Feign概述 Feign是一个声明式的客户端负载均衡器;采用的是基于接口的注解;整合了ribbon,具有负载均衡的能力;整合了Hystrix,具有熔断的能力; 1、为什么会使用Feign代替Ribbon 使用RestTemplate+ribbon的方式来进行服务间的调用,会导致我们每次去调用其他服务的一个接口,都要单独写一些代码。 而Feign是声明式调用,可以让我们不用写代码,直接用一些接口和注解就可以完成对其他服务的调用。 2、Feign和OpenFeign的区别? 依赖不同:一个是spring-cloud-starter-feign,一个是spring-cloud-start...

文章目录 ​​一、前言​​ ​​二、WeightedResponseTimeRule​​ ​​1、计算权重?​​ ​​1)如何更新权重?​​ ​​2)如何计算权重?​​ ​​3)例证权重的计算​​ ​​2、权重的使用​​ ​​1)权重区间问题?​​ 一、前言 前置Ribbon相关文章: ​​【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)​​ ​​【云原生&微服务二】SpringCloud之Ribbon自定义负载均衡策略(含Ribbon核心API)​​ ​​【云原生&微服务三】Spr...

文章目录 ​​一、前言​​ ​​二、调试程序信息​​ ​​三、Gateway对请求做负载均衡分析​​ ​​请求负载均衡<-ReactiveLoadBalancerClientFilter​​ ​​总结​​ 一、前言 至此微服务网关系列文章已出: ​​【云原生&微服务>SCG网关篇一】为什么要有网关、生产环境如何选择网关​​ ​​云原生&微服务>SCG网关篇二】生产上那些灰度发布方式​​ ​​【云原生&微服务>SCG网关篇三】SpringCloudGateway是什么、详细使用案例​​ ​​云原生&微服务>SCG网关篇四】SpringClo...

文章目录 ​​一、前置知识​​ ​​二、Ribbon核心API​​ ​​三、自定义负载均衡策略IRule​​ ​​1、编写IRule实现类​​ ​​2、编写Ribbon配置类​​ ​​3、应用到全部服务上(Ribbon全局配置)​​ ​​1)Spring的自动扫描​​ ​​2)@RibbonClients注解​​ ​​3、应用到指定服务上(Ribbon局部配置)​​ ​​1)代码配置-@RibbonClient​​ ​​2)属性配置-application.yml​​ ​​3)两种方式对比:​​ ​​4)细粒度配置-最佳实践:​​ ​​4、使用浏览器进行调用服务消费者​...

一、负载均衡概述 在分布式或微服务架构中,服务的提供者往往有多个实例会注册到服务注册中心中,服务消费者需要使用服务时,需要决定使用哪个服务提供者,这正是负载均衡的体现。负载均衡也可以理解为:将用户的请求平摊分配到每个服务器上,尽可能的压榨每台服务器的带宽、性能。 负载均衡的方式有两种: 服务端负载均衡 像以前的老架构,通过nginx对请求做负载均衡,然后下发到指定的tomcat。 客户端负载均衡 client获取到所有的service实例,然后做负载均衡规则。例如:Ribbon、Feign 本文我们针对SpringCloud如何集成Ribbon实现负载均衡做一个讨论。 注:(...

文章目录 ​​一、前言​​ ​​二、轮询算法-->RoundRobinRule​​ ​​三、重试算法-->RetryRule​​ 一、前言 前置Ribbon相关文章: ​​【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)​​ ​​【云原生&微服务二】SpringCloud之Ribbon自定义负载均衡策略(含Ribbon核心API)​​ ​​【云原生&微服务三】SpringCloud之Ribbon是这样实现负载均衡的(源码剖析@LoadBalanced原理)​​ ​​【云原生&微服...

文章目录 ​​一、前言​​ ​​二、Ribbon和Eureka​​ ​​1、Ribbon如何与eureka整合,通过eurekaclient获取到对应的注册表?​​ ​​1)为什么是DynamicServerListLoadBalancer的restOfInit()方法?​​ ​​2)DynamicServerListLoadBalancerrestOfInit()​​ ​​0>初始化服务实例列表流程图​​ ​​1>初始化服务实例列表​​ ​​ServerList从哪来的?​​ ​​2、动态更新服务实例列表​​ ​​1)流程图​​ ​​2)流程解析​​ ...

文章目录 ​​一、前言​​ ​​二、Ribbon内置了哪些负载均衡算法?​​ ​​三、随机算法-->RandomRule​​ ​​1、ThreadLocalRandom详解​​ ​​1)为什么不用Random?​​ ​​2)ThreadLocalRandom的诞生?​​ ​​3)ThreadLocalRandom的错误使用场景​​ ​​1>代码示例:​​ ​​2>运行结果:​​ ​​3>运行结果分析:​​ ​​4)ThreadLocalRandom的正确使用方式​​ ​​5)ThreadLocalRandom源码解析​​ ​​1>nextI...

文章目录 ​​一、前言​​ ​​二、BestAvailableRule​​ ​​1、负载规则​​ ​​2、如何判断服务实例被tripped?​​ ​​3、如何获取服务实例的并发数?​​ ​​4、实例并发数的维护:​​ ​​1)增加实例的并发数​​ ​​2)减少实例的并发数​​ ​​三、后续文章​​ 一、前言 前置Ribbon相关文章: ​​【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)​​ ​​【云原生&微服务二】SpringCloud之Ribbon自定义负载均衡策略(含Ribbon核心API...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~