1、单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包进行部署
2、分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
1、SpringCloud是目前国内使用最广泛的微服务架构
2、SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动配置,从而提供了良好的开箱即用体验,包括如下组件:
SpringCloud版本 | SpringBoot版本 |
---|---|
2021.x | 2.6.x |
2020.x | 2.4.x |
Hoxton | 2.2.x,2.3x |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
1、注册RestTemplate
@Bean
public RestTemplate restTemplate() {return new RestTemplate();
}
2、服务远程调用RestTemplate
@Autowired
private RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);// 2.利用RestTemplate发起http请求,查询用户// 2.1.url路径String url = "http://userservice/user/" + order.getUserId();// 2.2.发送http请求,实现远程调用User user = restTemplate.getForObject(url, User.class);// 3.封装user到Orderorder.setUser(user);// 4.返回return order;
}
3、微服务调用方式