1.微服务特点

  • 单一职责:单一职责不仅涉及到服务拆分,在微服务领域,这种职责划分要求将数据库、开发、测试、发布、运维都归于一个领域模型里。有一个团队完全掌控用用的整个生命周期。举例:如商品模块,商品的数据完全存放在商品微服务中,任何上下游系统都要通过商品服务提供的接口进行获取数据,而不是像单体应用那样直接访问数据库。
  • 可独立部署:每一个微服务模块都应当是一个可独立打包,独立部署的应用。与上下游应用没有直接的依赖。

2.为什么要应用微服务化

传统架构之殇

  • 数据访问杂乱
    • 数据模型变更
    • 底层组件变更
  • 代码维护成本
  • 不断变化的新业务

3.微服务拆分的规范和原则

压力模型拆分

我们要识别出超高并发量的业务,将这部分业务拆分出来。

业务模型拆分

  • 主链路拆分
  • 领域模型拆分
  • 用户群体拆分
  • 前后台业务分离

4.微服务缺点

  • 部署结构复杂:模块众多,一堆额外组件
  • 依赖平台支撑:依赖微服务组件,研发成本狗
  • 分布式问题:一致性问题
  • 拆分水平:粒度过粗/过细