基于Ribbon实现负载均衡


Ribbon是Spring Cloud的一个组件, 它可以让我们使用一个注解就能轻松的搞定负载均衡

仅作为入门测试记录

第1步:引入依赖

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

第2步:在RestTemplate 的生成方法上添加@LoadBalanced注解

1
2
3
4
5
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}

第3步:修改服务调用的方法

service-product服务 -> ProductController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
public class ProductController {

@Autowired
private RestTemplate restTemplate;

@GetMapping("/list1")
public String AdminList() {
String result = restTemplate.getForObject("http://" + "admin" + "/list", String.class);

return "this is requestResult:" + result;
}

}

admin服务 -> AdminController.java

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
public class AdminController {
@Autowired
private AdminService adminService;

@GetMapping("/list")
public List<Admin> list() {
System.out.println("被调用了....");
return adminService.lists();
}

}

即可通过Ribbon实现负载均衡策略