单体架构(不适合大型项目)
单体架构是指将业务的所有功能集中在一个项目中开发,打包成一个包部署
优点
- 架构简单
- 部署成本低
缺点
- 耦合度高
分布式架构(适合大型项目)
分布式架构是指根据业务功能对系统进行拆分,每个业务模块作为独立项目进行开发,称为一个服务
优点
- 降低服务耦合
- 有利于服务升级拓展
问题
服务拆分粒度,服务接口,远程调用,服务健康状态
微服务
微服务是一种分布式架构方案,是分布式架构的最佳实现服务
特征
-
单一职责 -- 每个服务对应一个业务功能,单一职责,避免重复开发
-
面向服务 -- 对外暴露业务接口
-
自治 -- 团队独立、技术独立、数据独立、部署独立
-
隔离性强 -- 服务做好隔离、容错,避免级联问题
-
高内聚 低耦合
微服务技术对比
Spring Cloud
服务拆分及远程调用
服务拆分注意事项
- 不同微服务,不要重复开发相同业务
- 微服务数据独立,不要访问其他微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其他微服务调用
微服务远程调用
- 注册RestTemplate
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
- 调用RestTemplate发送请求(Restful 风格)