Eureka拉取服务(消费者进行消费)

发布时间 2024-01-09 13:34:33作者: xiaobaibao

一、注册Bean:可以在启动类上面进行注册,也可以新建config

/**
* 创建RestTemplate并注入Spring容器
* @return
*/
@Bean
@LoadBalanced // 此注解主要是为了将服务负载均衡
public RestTemplate restTemplate(){
return new RestTemplate();
}

二、方法中进行操作

public Order queryOrderById(Long orderId){
// 1.查询订单
Order order = orderMapper.findById(orderId);
// 2.利用RestTemplate发起http请求,查询用户
// url路径
String url = "";
url = "http://localhost:10086/user/" + order.getUserid();
// 使用eureka的服务url
url = "http://userservice/user/" + order.getUserid();
// 2.2发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);
// 3.封装user到order
order.setUser(user);
return order;
}

注:这里面的userservice是注册的服务名称,因为我们加了注解完成负载均衡,所以我们不需要去看他到底使用的是复制的服务实例还是本体实例,eureka会将之负载均衡,均衡使用,我们就不必多管了。