一、服务拆分
(一)服务拆分的注意事项
- 1、不同微服务不重复开发相同业务。(例如订单服务不开发用户查询功能,直接调用其他服务接口就可以了)
- 2、微服务数据独立,不访问其他微服务的数据库。
- 3、微服务可以将自己的业务暴露接口,供其它微服务调用。
二、远程调用
远程调用的实质,是微服务端通过 HTTP 请求其它微服务接口。
(一)实现步骤
1、注册 RestTemplate
@MppaerScan("xxxxx.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args){
SpringApplication.run(OrderApplication.class,args);
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2、发起请求
@Service
public class OrderService{
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate
public Order queryOrderById(Long orderId){
Order order = orderMapper.findById(orderId);
//利用RestTemplate发起请求
String url = "http://localhost:8081/user/" + order.getUserId();
User user = restTemplate.getForObject(url, User.class);
order.setUser(user);
return order;
}
}