微服务架构最全详解(4大核心架构模式)

微服务是大型架构核心,下面我详解微服务架构@mikechen

微服务数据共享设计

数据共享设计,是指多个微服务需要访问同一份业务数据时,通过共享数据库或共享数据访问能力,实现服务之间的数据共享。

微服务架构最全详解(4大核心架构模式)-mikechen

优点:数据一致性容易保证(本地事务即可)。

实现简单,查询跨服务数据方便,适合遗留系统重构初期。

缺点(为什么常被视为反模式):破坏服务自治与松耦合,一个服务改表结构会影响其他服务。

开发最快,但违反了微服务的独立性原则,耦合度高,适合单体向微服务演进的过渡阶段。

 

微服务聚合设计

聚合设计是指:一个上层服务调用多个下游微服务,然后将多个服务的数据聚合成一个完整结果。

微服务架构最全详解(4大核心架构模式)-mikechen

例如电商首页需要同时获取:

  • 用户信息
  • 商品信息
  • 推荐信息
  • 优惠券信息
  • 活动信息

可以设计一个聚合服务:

                 ┌──────────────┐
                 │   聚合服务    │
                 └──────┬───────┘
                        │
          ┌─────────────┼─────────────┐
          ▼             ▼             ▼
      用户服务       商品服务       推荐服务
          │             │             │
          ▼             ▼             ▼
        User           Goods       Recommend

聚合设计的本质,是通过一个聚合层统一整合多个微服务的数据和能力,再向调用方提供统一结果。

但聚合设计也有明显挑战。首先,聚合层本身可能成为性能瓶颈;

其次,多个服务调用会增加失败概率,要求聚合层具备超时控制、熔断、降级和容错能力

微服务代理设计

微服务代理设计主要用于在服务之间引入一层中介,以实现请求转发、协议转换、安全控制、流量治理和治理策略统一下发。

微服务架构最全详解(4大核心架构模式)-mikechen

比如:Service Mesh的Sidecar,就是经典的场景。

微服务架构最全详解(4大核心架构模式)-mikechen

Service Mesh 边车代理(Sidecar Pattern):将服务发现、RPC 重试、TLS 加密、链路追踪等非业务逻辑。

剥离至独立的 Pod 边车进程(如 Envoy/Istio),业务代码实现完全无感知轻量化。

 

微服务异步消息设计

异步消息设计:是微服务架构中非常重要的一种解耦方式。

微服务架构最全详解(4大核心架构模式)-mikechen

然而,异步消息设计对系统要求较高。

其难点主要集中在消息重复、消息丢失、顺序保证、幂等处理和最终一致性等方面。

开发者必须建立完善的消息确认、重试、死信队列和补偿机制,才能确保系统可靠运行。

可以说,异步消息设计并不是单纯引入消息中间件,而是一整套围绕事件驱动的架构方法。

以上

评论交流
    说说你的看法