Ribbon负载策略有以下几种:
默认是使用轮询策略.
在springboot项目中,使用ribbon+RestTemplate可以很方便的实现的实现轮询负载策略
配置代码如下:
@Configuration public class ApplicationContextConfig { @Bean @LoadBalanced // 提供负载均衡的能力 public RestTemplate getRestTemplate() { return new RestTemplate(); } }
@Autowired private RestTemplate restTemplate;
但是如果是使用其它负载策略.需得如下配置
1. 首先在 @ComponentScan 注解管理的包范围之外创建一个配置类,然后在配置类中指明Rabbion的负载策略
import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RandomRule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * 自定义Ribbon的轮询规则,这儿使用随机 */ @Configuration public class MyOrderRule { @Bean public IRule myRule() { return new RandomRule(); } }
2. 在项目启动类上添加@RibbonClient注解
@EnableEurekaClient @SpringBootApplication
// 表示调用CLOUD-PAYMENT-SERVICE服务用的MyOrderRule轮询规则 @RibbonClient(name = "CLOUD-PAYMENT-SERVICE", configuration = MyOrderRule.class) public class OrderApp { public static void main(String[] args) { SpringApplication.run(OrderApp.class, args); } }
3. 其它照旧