SpringCloud 教程 已完结(IDEA 2022.1最新版)4K蓝光画质

在2020年前的springcloud 是采用了 Ribbom 作为负载均衡实现
但是在2020年之后 springcloud就把 Ribbom 移除了,取而代之的就是自己编写的LoadBalancer
实际上 添加注解之后 就会启动拦截器 对我们发起的服务调用请求进行拦截,然后进行相关的代码
实现负载均衡 一共有两种策略
RandomLoadBalancer
随机分配策略
RoundRobinLoadBalancer
轮询分配策略
轮询分配策略是作为默认的策略进行使用
修改分配策略
不能使用在启动类中配置的@LoadBalancer
创建一个配置类 在里面创建初始组件 RestTemplate
要注意的是 在配置类上面给上注解
@LoadBalancerClient(value = "user",configuration = LoadBalancerConfig.class)
value 指向的是服务名称 右侧 configuration 指向分配策略的配置类
(下面写)
package cn.order.config; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration @LoadBalancerClient(value = "user",configuration = LoadBalancerConfig.class) public class BeanConfiguration { @Bean // 负载均衡注解 @LoadBalanced public RestTemplate createRestTemplate(){ return new RestTemplate(); } }
编写随机分配策略的配置类(上文需要的 configuration
)
这里要注意的是 大写指向的是类 小写指向的是对象
package cn.order.config; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.loadbalancer.core.RandomLoadBalancer; import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; @Configuration public class LoadBalancerConfig { @Bean public ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment, LoadBalancerClientFactory loadBalancerClientFactory){ String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class),name); } }
这样就成功的修改好了 分配策略