一、什么是Ribbon
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用
二、为服务消费者整合Ribbon
1、引入依赖:spring-cloud-starter-ribbon(spring-cloud-starter-eureka中已包含了ribbon)
2、为RestTemplate添加@LoadBalanced注解
3、将请求地址修改为虚拟主机名,Ribbon会自动把虚拟主机名映射称网络地址(默认情况下,虚拟主机名和服务名称是一样的,也可以通过配置属性eureka.instance.virtual-host-name或者eureka.instance.secure-virtual-host-name。虚拟主机名不能包含下划线)
#在RestTemplate上加上@LoadBalanced注解 @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } //修改controller内的方法,将请求地址从url改为微服务的虚拟名 @GetMapping("/user/{id}") public User findById(@PathVariable Long id) { //VIP:virtual IP return this.restTemplate.getForObject("http://microservice-provider-user/" + id, User.class); }