![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Ribbon
qq_33513289
这个作者很懒,什么都没留下…
展开
-
Feign请求过程的处理
上文说明了FeignClient接口在Spring容器中都是生成关联FeignInvocationHandler的代理类,所以在调用FeignClient接口的方法时,都会执行FeignInvocationHandler.invoke方法,FeignClient的接口方法的信息都被解析封装在SynchronousMethodHandler中,并以FeignClient接口的Method为key,SynchronousMethodHandler为value,保存在dispatch变量的Map结构中。在Feig原创 2020-09-19 17:44:34 · 998 阅读 · 0 评论 -
Feign代理类的生成过程
我们从下面这个注解进行切入,这个注解开启了FeignClient的解析过程@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented@Import({FeignClientsRegistrar.class})public @interface EnableFeignClients { String[] value() default {}; String[] basePackages()原创 2020-09-14 20:57:56 · 822 阅读 · 0 评论 -
Ribbon改写请求uri的源码分析
进入RestTemplate的execute方法,其调用了自身的doExecute方法,在doExecute方法中通过createRequest方法创建了ClientHttpRequest对象,通过类名称,我们就可以知道这是一个发起http请求的封装类。那么在createRequest方法中RestTemplate做了哪些事情?@Nullablepublic <T> T execute(String url, HttpMethod method, @Nullable RequestCal原创 2020-08-01 22:58:36 · 449 阅读 · 0 评论 -
Ribbon均衡算法
Ribbon的负载均衡算法的类的集成关系如下其中:1、RetryRule: 在一个2配置时间段内当选择server不成功,则一直尝试使用subRule的方式选择一个可用的server2、RoundRobinRule: 默认轮询的方式3、WeightedResponseTimeRule: 根据响应时间来分配权重的方式,响应的越快,分配的值越大4、AvailabilityFilteringRule: 过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,.原创 2020-07-26 14:37:13 · 256 阅读 · 0 评论 -
Ribbon ILoadBalancer 负载均衡源码分析
在执行LoadBalancerInterceptor.intercept拦截器方法的时候,会调用LoadBalancerClient.execute方法,执行具体的请求逻辑,public <T> T execute(String serviceId, LoadBalancerRequest<T> request, Object hint) throws IOException { ILoadBalancer loadBalancer = this.getLoadBala原创 2020-08-14 08:27:11 · 384 阅读 · 0 评论