深入理解Spring Cloud Ribbon客户端负载均衡原理(一 实现服务实例地址转换)
在使用spring cloud搭建微服务架构时,需要进行负载均衡操作。负载均衡分为硬件负载均衡和软件负载均衡,软件负载均衡又分为服务端负载均衡和客户端负载均衡。本系列主要介绍利用Spring cloud Ribbon 和RestTemplate实现客户端负载均衡,本文主要介绍将逻辑名为host的URI转化为服务实例的过程。 一、客户端负载均衡接口LoadBalanceClient 在进行开发时,要实现对基于RestTemplate的客户端负载均衡,只需在创建RestTemplate对象时,添加LoadBalanced注解即可实现。通过查看源码,该注解是通过LoadBalanceClient接口实现其功能。LoadBalanceClient接口定义三个方法,源码如下: 1 public interface LoadBalancerClient { 2 ServiceInstance choose(String var1); 3 4 <T> T execute(String var1, LoadBalancerRequest<T> var2) throws IOException; 5 6 URI reconstructURI(ServiceInstance var1, URI var2); 7 } choose()方法用来从负载均衡器中挑选一个服务实例。 execute(