🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
IRule是一个接口,它可以让我们选择Ribbon提供的7中均衡策略中的某一种。只需要把想要的均衡策略进行装配即可。 :-: ![](https://img.kancloud.cn/b8/cd/b8cdfb9bb6efb23dde627ca93abb1fad_1198x530.jpg) IRule继承结构 ![](https://img.kancloud.cn/35/1c/351cbf5be5d98520c7e2fd8fb01c8ca6_1102x629.jpg) <br/> **Ribbon在工作时分成两步:** 第一步先选择Eureka Server ,它优先选择在同一个区域内负载较少的Eureka Server服务注册中心; 第二步从Eureka注册中心中取到所有的服务端的注册列表,根据用户指定的均衡策略选择合适的服务提供者。 :-: ![](https://img.kancloud.cn/dc/15/dc153588d92de679e15d1559018463a6_1243x463.jpg) Ribbon默认提供的7中均衡策略 <br/> 下面的代码演示了如何选用随机均衡策略,只需要在 cloud-comsumer-order80 消费端将`RandomRule`组件进行装配即可实现随机均衡策略,其它的均衡策略也是一样的用法。 ```java @Configuration public class ApplicationContextConfig { @Bean @LoadBalanced //该注解默认的负载均衡策略是轮询策略 public RestTemplate getRestTemplate() { return new RestTemplate(); } /** * 选用随机的均衡策略。 * 上面的注解@LoadBalanced依然需要,它用来开启负载均衡,默认是轮询。 * 装配了随机策略后就改用随机策略了 */ @Bean public IRule randomRule() { return new RandomRule(); } } ```