微服务架构最佳实践-方法篇

第83篇

极客时间《从0开始学架构》课程笔记。

服务粒度

为了防止拆分过细,建议基于团队规模进行拆分,『三个火枪手』原则,即一个微服务三个人负责开发,主要应用于微服务设计和开发阶段。

为什是三个人?

  • 系统规模原因:3个人开发一个系统,系统复杂度刚好合适,既能全面理解,又能进行分工
  • 团队管理原因:3个人 可以形成一个稳定的备份
  • 技术提升角度:3人小组既能形成有效套路,又能快速达成一致意见

拆分方法

  • 常见拆分方法有四种:基于业务逻辑、基于可扩展、基于可靠性、基于性能
  • 基于业务逻辑拆分:最常见的方式,业务模块按照职责范围识别出来,每个单独的业务模块拆成一个独立服务,需要结合『三个火枪手』原则
  • 基于可扩展拆分:把业务模块按照稳定性排序,然后分为稳定服务和变动服务两类。稳定的服务可以粗一些,不稳定的服务粒度细一些
  • 基于可靠性拆分:将业务模块按照优先级排序,区分可靠性要求高的核心服务和可靠性低的非核心服务,然后重点保证核心服务的高可用,这种方式可以避免非核心服务故障影响核心服务,也使得核心服务高可用方案更简单,并且能够降低高可用成本
  • 基于性能拆分:将性能要求高或性能压力大的拆分出来,避免性能压力大得服务影响其他服务,常见方式与具体的性能瓶颈有关
  • 拆分方式可以自由组合,不是互斥的关系

基础设施

微服务架构最佳实践-方法篇_第1张图片
微服务基础设施

微服务基础设施建设优先级:

  • 最基本的微服务基础设施:服务发现、服务路由、服务容错
  • 提升开发效率: 接口框架、API网关
  • 提升测试和运维效率:自动化部署、自动化测试、配置中心
  • 进一步提高运维效率:服务监控、服务跟踪、服务安全

你可能感兴趣的:(微服务架构最佳实践-方法篇)