Springboot-整合Ribbon
SpringBoot 整合 Ribbon
使用 LoadBalanceClient
引入 jar 包
1
2
3
4
5<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>注意 springboot 版本和 jar 包版本差异问题
配置负载
1
2\ =
localhost:8180,localhost:8181业务使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class TestController {
private RestTemplate restTemplate;
private RestTemplate restTemplate() {
return new RestTemplate();
}
LoadBalancerClient loadBalancerClient;
public String test() {
ServiceInstance serviceInstance =loadBalancerClient.choose("spring-cloud-order");
String url = String
.format("http://%s:%s", serviceInstance.getHost(), serviceInstance.getPort() + "/order");
String result = restTemplate.getForObject(url, String.class);
System.out.println(result);
return result;
}
}loadBalancerClient 获取服务的负载地址,通过 RestTemplate 访问请求。
使用注解封装 RestTemplate
引入 jar 和配置入和上一个步骤一致
业务使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test2Controller {
RestTemplate restTemplate;
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder){
return restTemplateBuilder.build();
}
public String test() {
String url = "http://spring-cloud-order/order";
String result = restTemplate.getForObject(url, String.class);
System.out.println(result);
return result;
}
}@LoadBalanced 注解使用在 RestTemplate 的生成上面.(注意@Bean 注解必须在@LoadBalanced 上面 )
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zeofuns!