不同的数据库之间,如何共同调用?接下来讲讲两个数据库之间如何交互
1、微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务
2、微服务可以将业务暴露为接口,供其它微服务使用3、不同微服务都应该有自己独立的数据库
微服务调用方式
·基于RestTemplate发起的http请求实现远程调用
. http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可。
步骤一:注册RestTemplate
在order-service的OrderApplication中注册RestTemplate
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
//创建RestTemplate并注入Spring容器
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
步骤二:服务远程调用RestTemplate
修改order-service中的OrderService的queryOrderByld方法
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
// 2.利用RestTemplate发送http请求,查询用户
// 2.1.url路径
String url = "http://localhost:8081/user/" + order.getUserId();
// 2.2.发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);//第一个参数是路径,第二个参数是返回的类=类型
// 3.封装user到order
order.setUser(user);
// 4.返回
return order;
}
}
成果:
第一个数据库的表:
第二个数据库的表:
查询结果:两个数据库交互查询
代码文件下载https://pan.baidu.com/s/1MbD4cSpIRI-RbExdvOyAHg?pwd=ia6t
下一篇:Eureka