微服务架构详解

微服务VS SOA

微服务架构陷阱与挑战

六大陷阱

拆分颗粒度太细

  • 服务关系复杂
  • 团队效率下降
  • 问题定位困难
  • 系统性能下降

基础设施不完善

  • 无法快速交付
  • 服务管理混乱

四大挑战

  • 分布式事务
  • 全局幂等
  • 接口兼容
  • 接口循环调用

微服务基础设施选型

核心为服务运行层:服务注册、服务发现、服务路由

  1. 嵌入SDK式
  2. 反向代理式
  3. 网络代理式

微服务拆分技巧

按业务拆分

  • 业务边界划分
  • 三个火枪手原则

【定义】 平均3个开发人员负责一个微服务。

【剖析】

  1. 为什么不是1个?

    • 因为没有备份,且一个人思维有局限。
  2. 为什么不是2个?

    • 因为异常情况下剩余1个,压力会很大;
    • 2个人负责维护一个微服务,微服务复杂度偏低。
  3. 为什么不是4个或者5个? 如果4个或4个以上,每个人不一定能掌握单个服务所有细节。

【技巧】

  1. 微服务数量 = 服务端开发人数 /3 ;
  2. 3 = 1 +2,1个有经验的(P7/P6+),2个普通的(P5/P6);
  3. 处于维护期的服务,维护人员为2人。

按质量拆分

  1. 按性能拆分
  2. 按业务重要程度拆分
  3. 按可用性拆分
  4. 按稳定性拆分

中台深入剖析和实现技巧

共享类别

  1. 无共享,烟囱模型
  2. Iaas,共享基础设施
  3. PaaS,共享平台能力
  4. SaaS,共享软件能力
  5. 中台,共享业务能力