实际环境中,往往会开启很多个服务提供者的集群。此时获取的服务列表中就会有多个,到底该访问哪一个呢?
一般这种情况下就需要编写负载均衡算法,在多个实例列表中进行选择。 不过Eureka中已经集成了负载均衡组件:Ribbon,简单修改代码即可使用。
实现方式
步骤一:启动多个服务实例
步骤二:开启负载均衡
在RestTemplate的配置方法上添加 @LoadBalanced 注解:
步骤三:修改服务消费中的路径,不再手动获取ip和端口,而是直接通过服务名称调用;
注:Ribbon默认的负载均衡策略是轮询。SpringBoot也帮提供了修改负载均衡规则的配置入口