其实前面已经介绍过Ribbon负载均衡,在访问量较大的情况下,我们会通过水平扩容的方式增加多个节点来平衡请求的流量,从而提升整体服务的性能。Spring Cloud Alibaba作为一个微服务框架,使用Dubbo作为通讯框架,在Dubbo提供了四种负载均衡策略,分别为随机算法(random)、轮训(roundrobin)、最少活跃调用少(leastactive)、一致性hash算法(consistenthash)。其中随机算法可以针对性能较好的服务器设置权重,请求的概率也会越大,轮训算法是按照公约后的权重设置轮训比例,最少活跃调用少处理慢的节点将会收到较少请求,一致性哈希算法请求参数一致的发送到同一个服务器。如下为Dubbo提供的负载均衡类图:
使用Dubbo的负载均衡策略时,可以在@Service注解上添加loadbalance参数即可,loadbalance的值为负载均衡策略的名称,就是上面介绍的负载均衡策略括号中的值,比如我们将负载均衡策略设置为轮训,@Service注解如下:
@Service(loadbalance="roundrobin")
public class HelloServiceImpl implements HelloService {
public String sayHello(String name) {
return "Hello