比如我创建的一个订单服务:order-service,
要调用我的商品服务product-service里面的接口,默认使用轮询的负载均衡策略
现在我要使用随机分配,如何操作呢?
1.order-service的配置文件application.yml里面修改配置即可:
要指定调用的服务名称product-service
RandomRule为随机分配,更多策略参考:https://blog.csdn.net/u012702547/article/details/77978845
server: port: 8781 #指定注册中心地址 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ #服务的名称 spring: application: name: order-service #自定义负载均衡策略,随机分配 #调用的服务名称为product-service(怕名字错误可直接看注册中心名字) product-service: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
2.自定义负载均衡策略官方文档:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#_customizing_the_ribbon_client_by_setting_properties
3.注意:
策略选择:
1、如果每个机器配置一样,则建议不修改策略 (推荐)
2、如果部分机器配置强,则可以改为 WeightedResponseTimeRule
(权重策略,服务的平均响应时间越短,权重越高,被选中的概率越高)