Ribbon=客户端负载均衡+RestTemplate 远程调用

Ribbon

在工作时分成两步:

第一步,先选择

EurekaServer

,它优先选择在同一个区域内负载较少的

server

第二步,再根据用户指定的策略,在从

server

取到的服务注册列表中选择一个地址。其

Ribbon

提供了多种策略。比如:

轮询

随机

和根据

响应时间

加权。

 引入依赖

org.springframework.cloud

spring-cloud-starter-netflix-ribbon

在用户服务中编写一个配置类

在用户服务,给容器中注入一个 RestTemplate 并使用 Ribbon 进行负载均衡调用

@Configuration

public class RestTemplateConfig {

@LoadBalanced //开启客户端负载均衡

@Bean

public RestTemplate getRestTemplate(){

return new RestTemplate();

}

}

使用 RestTemplate 在service层进行远程调用

@Service

public class OrderService {

@Autowired

private OrderDao orderDao;

@Autowired

private RestTemplate restTemplate;

public Order findOrder(Integer id){

return orderDao.findOrder(id);

}

public Map finOrderAndUser(Integer id){

Order order = orderDao.findOrder(id);

Map map = new HashMap<>();

//CLOUD-EUREKA-PROVIDER8001调用服务在eureka注册中心的服务名称

User user = restTemplate.getForObject("http://CLOUD-EUREKA-PROVIDER8001/user/find?id="+id, User.class);

map.put("order",order);

map.put("user",user);

return map;

}

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: