当前测试结果如下:
- 用户微服务:
{"id":1,"uname":"猴哥","address":"沈阳"}
- 订单微服务:
{"id":1,"uid":1,"name":"小快乐","price":25,"num":10,"user":null}
此时订单信息中用户的数据并没有,其实简单:在订单微服务中发起http请求【http://localhost:9001/user/1】。
基本步骤:
(1)注册一个RestTemplate实例
在订单微服务的启动类直接注册即可。
// 注册一个RestTemplate
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
(2)在订单微服务的服务层实现类中发起远程调用:注入RestTemplate。
// 自动注入RestTemplate
@Resource
private RestTemplate restTemplate;
(3)将远程调用的用户信息封装在订单信息对象中即可。
// 查询订单
Orders order = orderMapper.findOrdersById(id);
// 远程调用用户微服务获取用户信息
// 1、准备url
String url = "http://localhost:9001/user/" + order.getUid();
// 2、发起远程调用
User user = restTemplate.getForObject(url, User.class);
// 将用户对象封装到订单对象中
order.setUser(user);
// 将订单对象返回
return order;
测试结果:
{"id":3,"uid":3,"name":"内存条","price":580,"num":2,"user":{"id":3,"uname":"师傅","address":"唐朝"}}
- 理解服务的提供者和服务的消费者
在服务调用关系中,会有两个角色即是:服务提供者和服务消费者。
(1)服务提供者
简单的理解就是一次业务中,被其他服务所调用的服务。【本服务暴露接口给其他的微服务】
(2)服务消费者
简单的理解就是一次业务中,调用其他微服务的服务。【调用其他的微服务暴露的接口】
注意:
- 二者的角色并不是绝对的,而是相对于业务才能具体的定下。
- 一个微服务既可以是服务提供者也可以是服务消费者。
微服务的测试
最新推荐文章于 2024-10-19 17:39:57 发布