单体架构

定义:将业务的所有功能集中在一个项目中开发,打成一个包部署

优点:

  • 架构简单
  • 部署成本低

缺点:

  • 团队协作成本高
  • 系统发布效率低
  • 系统可用性差

总结:适合开发功能相对简单,规模相对较小的项目。

微服务

定义:是服务化思想指导下的一套最佳实践架构方案,服务化,就是把单体架构中的功能模块拆分为多个独立项目

  • 粒度小
  • 团队自治
  • 服务自治

SpringCloud

集成了各种微服务组件,并基于SpringBoot实现了微服务组件的自动装配,从而提供了良好的开箱即用体验

服务拆分原则

拆分目标

  • 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高,完整度高
  • 低耦合:每个微服务的功能要相对独立,尽量减少其他微服务的依赖

拆分方式来说:

  • 纵向拆分:按照业务模块
  • 横向拆分:抽取公共服务,提高服用性