ribbon整体流程图:
(1)首先获取所有标识@LoadBalanced注解的RestTemplate(可以理解成获取那些开启了Ribbon负载均衡功能的RestTemplate),然后将Ribbon默认的拦截器LoadBalancerInterceptor添加到RestTemplate中;
(2)当有请求发起时,ribbon默认的拦截器首先会创建ILoadBalancer(里面)。 创建ILoadBalancer的过程中。主要就是加载RibbonClientConfiguration这个配置类,完成的工作主要有一下内容
- 包含了选取服务的规则(IRule)、
- 服务集群的列表(ServerList)、
- 检验服务是否存活(IPing)等特性。
(3)最后ILoadBalancer从服务集群中选择一个服务,最后向这个服务发送请求。
(4)在该拦截器中会调用LoadBalancerClient.execute()方法来完成整改http请求的调用过程。