负载均衡

负载均衡

LoadBalancer

过程

在添加 @LoadBalanced 注解后,会启动拦截器对发起的服务调用请求进行拦截,叫做 LoadBalancerInterceptor,

它实现了 ClientHttpRequestInterceptor 接口

配置

第一种

将官方提供的 RandomLoadBalancer 注册为 Bean(不需要加 @Configuration)

1
2
3
4
5
6
7
public class LoadBalancerConfig {
@Bean
public ReactorLoadBalancer<ServiceInstance> randomLoadBalancer (Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) {
String name = environment.getProperty(PROPERTY_NAME);
return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
}
}

指定对应的服务为负载均衡策略

1
2
3
4
5
6
7
8
9
@Configuration
@LoadBalancerClient(value = "userService", configuration = LoadBalancerConfig.class)
public class BeanConfiguration {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

OpenFeign

配置

添加依赖

1
2
3
4
5
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>4.0.1</version>
</dependency>

在启动类上添加注解

1
2
3
4
5
6
7
@SpringBootApplication
@EnableFeignClients
public class BorrowApplication {
public static void main(String[] args) {
SpringApplication.run(BorrowApplication.class);
}
}

创建对应服务的接口类


负载均衡
http://yjh-2860674406.github.io/2023/07/24/编程/SSM/SpringCloud/负载均衡/
Author
Ye JinHua
Posted on
July 24, 2023
Licensed under