微服务学习(一):微服务认知
1.微服务特点
- 单一职责:单一职责不仅涉及到服务拆分,在微服务领域,这种职责划分要求将数据库、开发、测试、发布、运维都归于一个领域模型里。有一个团队完全掌控用用的整个生命周期。举例:如商品模块,商品的数据完全存放在商品微服务中,任何上下游系统都要通过商品服务提供的接口进行获取数据,而不是像单体应用那样直接访问数据库。
- 可独立部署:每一个微服务模块都应当是一个可独立打包,独立部署的应用。与上下游应用没有直接的依赖。
2.为什么要应用微服务化
传统架构之殇
- 数据访问杂乱
- 数据模型变更
- 底层组件变更
- 代码维护成本
- 不断变化的新业务
3.微服务拆分的规范和原则
压力模型拆分
我们要识别出超高并发量的业务,将这部分业务拆分出来。
业务模型拆分
- 主链路拆分
- 领域模型拆分
- 用户群体拆分
- 前后台业务分离
4.微服务缺点
- 部署结构复杂:模块众多,一堆额外组件
- 依赖平台支撑:依赖微服务组件,研发成本狗
- 分布式问题:一致性问题
- 拆分水平:粒度过粗/过细