微服务架构最佳实践-方法篇
2019-04-21 本文已影响0人
短暂瞬间
第83篇
极客时间《从0开始学架构》课程笔记。
服务粒度
为了防止拆分过细,建议基于团队规模进行拆分,『三个火枪手』原则,即一个微服务三个人负责开发,主要应用于微服务设计和开发阶段。
为什是三个人?
- 系统规模原因:3个人开发一个系统,系统复杂度刚好合适,既能全面理解,又能进行分工
- 团队管理原因:3个人 可以形成一个稳定的备份
- 技术提升角度:3人小组既能形成有效套路,又能快速达成一致意见
拆分方法
- 常见拆分方法有四种:基于业务逻辑、基于可扩展、基于可靠性、基于性能
- 基于业务逻辑拆分:最常见的方式,业务模块按照职责范围识别出来,每个单独的业务模块拆成一个独立服务,需要结合『三个火枪手』原则
- 基于可扩展拆分:把业务模块按照稳定性排序,然后分为稳定服务和变动服务两类。稳定的服务可以粗一些,不稳定的服务粒度细一些
- 基于可靠性拆分:将业务模块按照优先级排序,区分可靠性要求高的核心服务和可靠性低的非核心服务,然后重点保证核心服务的高可用,这种方式可以避免非核心服务故障影响核心服务,也使得核心服务高可用方案更简单,并且能够降低高可用成本
- 基于性能拆分:将性能要求高或性能压力大的拆分出来,避免性能压力大得服务影响其他服务,常见方式与具体的性能瓶颈有关
- 拆分方式可以自由组合,不是互斥的关系
基础设施
![](https://img.haomeiwen.com/i11857/307d11d5d9c2ad71.png)
微服务基础设施建设优先级:
- 最基本的微服务基础设施:服务发现、服务路由、服务容错
- 提升开发效率: 接口框架、API网关
- 提升测试和运维效率:自动化部署、自动化测试、配置中心
- 进一步提高运维效率:服务监控、服务跟踪、服务安全