Skip to main content

架构

单体架构

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

优点:

  • 架构简单
  • 部署成本低

缺点:

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

微服务

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

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

服务拆分原则

拆分目标:

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

拆分方式:

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

工程结构:

  • 独立的Project:将每个模块分成一个个独立的项目,放在统一的父文件夹里

    缺点:不适合中小型项目,增加管理负担

  • Maven聚合:仍将其看作一个项目,每个模块相当于该项目的一个Module

技术栈-SpringCloud

是目前国内使用最广泛的微服务框架。集成了各种微服务功能组件,并基于SpringBoot实现了组件的自动装配,从而提供了良好的开箱即用体验:

  • 服务注册发现
  • 服务远程调用
  • 服务链路监控
  • 统一配置管理
  • 统一网关路由
  • 流控、降级、保护