springcloud 入门 4 (rebbon源码解读)

Ribbon:

  ribbon是springcloud个服务之间调用的一种实现方式:主要提供了客户端的负载均衡。feign集成了Ribbon(下节介绍)

源码分析:

 1> 源码入口 @LoadBalanced

     

 2> @LoadBalanced  注解接口实现:

    

 3>  loadBanlanced 都是在spring-cloud-commons包中

    

    最终实现类是 RibbonLoadBalancerClient。集成关系如下:

     

  4>  RibbonLoadBalancerClient 类详解:   在spring-cloud-netflitx-ribbon包中:

    

    根据上面介绍,最终调的服务由choose方法决定,那我们来进一步看看choose方法:  下面是方法调用流程

    

  5>  负载均衡的实现  IRule 和iPing实现:

    

   IPing:判断服务器是否启动:isAlive方法

    

   IRule: 路由实现(在服务器启动的实现。选择哪个服务进行响应)

    

  剩下源码有兴趣的可以继续追,我就介绍到这了


原文地址:https://www.cnblogs.com/huhongy/p/9578024.html