Malize's blog Malize's blog
首页
  • 设计模式

    • 设计模式总览
    • 工作中用到的设计模式
  • 并发编程

    • 死锁
  • 技术文档

    • Docker 核心命令大全
    • Markdown 使用教程
    • npm 常用命令
    • yaml 语言教程
    • Nodejs 递归读文件
  • DDD 领域驱动(基础)

    • DDD 是什么
    • 领域、子域与限界上下文
    • 实体、值对象与聚合
    • 领域事件
    • 分层架构与架构模型
  • DDD 领域驱动(实战)

    • DDD、中台与微服务
    • 事件风暴与中台建模
    • 微服务代码模型
    • 边界、视图与微前端
    • 设计实例与拆分原则
    • 分布式架构关键设计10问
  • 学习笔记总览
  • 入门
  • 部署
  • 进阶
  • 集成
  • 优化
  • 面试
  • 构造问答系统

    • 项目背景
    • 构建答疑机器人
    • 扩展知识范围
    • 优化提示词
    • 自动化评测
    • 优化 RAG 应用
  • 构建 Agent 系统

    • Agent 基础与工具调用
    • 规划与执行
    • 多 Agent 团队协作
    • Memory 积累经验
    • Skill 可复用流程
    • Qwen Code 实践
  • 交付上线

    • 走向生产环境
    • 模型蒸馏
    • 部署模型
    • 生产实践
    • 安全合规
  • 工具手册

    • OpenClaw 命令速查
  • 规范 & 实践

    • 代码规范
    • sharding-jdbc
    • CIM 半导体行业
    • HTML 常用 meta
    • CSS 技巧收藏
  • 微服务

    • feign原理
  • Git

    • Git 笔记总览
    • Git 使用手册
    • Git 修改分支名
    • 团队 Git 分支规范
  • GitHub & 博客

    • GitHub 高级搜索技巧
    • GitHub Actions 自动部署
    • 博客搭建 - 百度收录
  • 优质网站
  • 前端库推荐
  • 成长学习

    • 学习方法
    • 英语学习:奥格登 850 词
    • 敏捷开发实战
    • 提示词工程
  • 生活

    • 实用技巧
    • 心情杂货
    • 梦境与灵感
  • 技术问题

    • 面试问题备忘
  • 索引

    • 分类
    • 标签
    • 按年归档
GitHub (opens new window)

Malize

持续学习,持续成长
首页
  • 设计模式

    • 设计模式总览
    • 工作中用到的设计模式
  • 并发编程

    • 死锁
  • 技术文档

    • Docker 核心命令大全
    • Markdown 使用教程
    • npm 常用命令
    • yaml 语言教程
    • Nodejs 递归读文件
  • DDD 领域驱动(基础)

    • DDD 是什么
    • 领域、子域与限界上下文
    • 实体、值对象与聚合
    • 领域事件
    • 分层架构与架构模型
  • DDD 领域驱动(实战)

    • DDD、中台与微服务
    • 事件风暴与中台建模
    • 微服务代码模型
    • 边界、视图与微前端
    • 设计实例与拆分原则
    • 分布式架构关键设计10问
  • 学习笔记总览
  • 入门
  • 部署
  • 进阶
  • 集成
  • 优化
  • 面试
  • 构造问答系统

    • 项目背景
    • 构建答疑机器人
    • 扩展知识范围
    • 优化提示词
    • 自动化评测
    • 优化 RAG 应用
  • 构建 Agent 系统

    • Agent 基础与工具调用
    • 规划与执行
    • 多 Agent 团队协作
    • Memory 积累经验
    • Skill 可复用流程
    • Qwen Code 实践
  • 交付上线

    • 走向生产环境
    • 模型蒸馏
    • 部署模型
    • 生产实践
    • 安全合规
  • 工具手册

    • OpenClaw 命令速查
  • 规范 & 实践

    • 代码规范
    • sharding-jdbc
    • CIM 半导体行业
    • HTML 常用 meta
    • CSS 技巧收藏
  • 微服务

    • feign原理
  • Git

    • Git 笔记总览
    • Git 使用手册
    • Git 修改分支名
    • 团队 Git 分支规范
  • GitHub & 博客

    • GitHub 高级搜索技巧
    • GitHub Actions 自动部署
    • 博客搭建 - 百度收录
  • 优质网站
  • 前端库推荐
  • 成长学习

    • 学习方法
    • 英语学习:奥格登 850 词
    • 敏捷开发实战
    • 提示词工程
  • 生活

    • 实用技巧
    • 心情杂货
    • 梦境与灵感
  • 技术问题

    • 面试问题备忘
  • 索引

    • 分类
    • 标签
    • 按年归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • Nodejs

  • 博客搭建

  • CIM

  • 代码规范

  • 前端基础

  • 微服务

  • Git

  • 数据库

  • DDD领域驱动

    • DDD是什么:为什么微服务设计要选择DDD
    • 领域、子域与限界上下文
    • 实体、值对象、聚合与聚合根
    • 领域事件:微服务解耦的关键
    • DDD分层架构与微服务架构模型
    • DDD、中台与微服务的铁三角
      • 一、平台 ≠ 中台
      • 二、传统企业的中台策略和阿里不一样
      • 三、前中后台怎么协同
      • 四、DDD 视角下的对应关系
      • 五、中台建模五步法
      • 六、答疑精华(很多人都会问的三个问题)
        • 1. 子域和限界上下文到底什么关系?有量化划分标准吗?
        • 2. 为什么要工厂模式和仓储模式?依赖倒置图什么?
        • 3. 事件异步了,发布方和订阅方数据不一致怎么办?
      • 七、小结
    • 事件风暴与中台业务建模实战
    • DDD微服务代码模型设计
    • 微服务的边界、数据视图与微前端
    • 微服务设计实例与拆分原则
    • 分布式架构关键设计10问
  • Elasticsearch

  • 技术
  • DDD领域驱动
malize
2026-08-03
目录

DDD、中台与微服务的铁三角

# DDD、中台与微服务的铁三角

合并整理中台相关的三讲(含答疑)。一句话先总结三者关系:中台是业务模型,微服务是模型的系统落地,DDD 是同时指导两者的方法论。

# 一、平台 ≠ 中台

很多公司说"我们十年前就做平台了,中台不就是换个名字?"——还真不是。

平台:把部分通用能力独立出来,通过 API 共享,解决重复建设问题。但各平台之间仍然是分离独立的,没有从页面、流程到数据的全面融合。

中台:站在企业级高度,把核心服务链路(会员、商品、交易、营销……)当作一个整体产品来做,给前台提供的是业务解决方案,不是一堆彼此独立的系统。

差异总结成三个关键能力:

  1. 对前台业务的快速响应能力
  2. 企业级复用能力
  3. 前台、中台、后台从页面、流程到数据的无缝联通融合能力

平台解决了"复用",但离"联通、融合"还有距离。

# 二、传统企业的中台策略和阿里不一样

阿里的中台更多对应 DDD 的通用域(通用能力沉淀共享)。但传统企业渠道多(门店、电商、APP、开放给第三方的生态),历史上每个渠道各建一套系统,导致"后端双核心、前端两张皮"。

所以传统企业不仅要把通用能力中台化,还要把核心能力中台化,让不同渠道复用同一套核心业务能力。

  • 通用能力中台 → 对应 DDD 通用域/支撑域
  • 核心能力中台 → 对应 DDD 核心域
  • 微服务拆分后的数据孤岛、融合问题 → 数据中台的职责

# 三、前中后台怎么协同

有个很形象的比喻:

角色 类比
前台 面向客户,随需求调度中台能力 作战部队
业务中台 沉淀专业能力,API 输出 专业军种(陆军/空军)
数据中台 汇集数据、分析决策 情报中心 + 总指挥部
后台 内部管理、流程审核 后勤部队

几个实践要点:

前台:不管后端有多少个中台,用户感受到的只有一个前台。可以借鉴微前端思想,页面动态组合 + 流程编排,实现前端复用和融合。

数据中台:三步走——先汇集各中台数据解决数据孤岛,再做全维度深度融合加工,最后萃取数据价值支持业务创新。注意它不只服务分析场景,配合 CDC 技术也能支撑交易型场景。

后台:管理类需求(审批、内控)别嵌进核心业务流程,按角色聚合功能后像小程序一样挂到前台入口。核心链路干净了,各渠道前台才容易融合。

# 四、DDD 视角下的对应关系

把 DDD 领域建模和中台建设两个视角对到一起:

企业全部业务 = 领域
    ├── 核心域   → 核心中台
    ├── 通用域   → 通用中台
    ├── 支撑域   → 通用中台
    └── 限界上下文 → 微服务
1
2
3
4
5

子域和中台在功能范围上是一致的,所以干脆统一语言:子域 = 中台。以保险为例,核心中台是营销、承保、理赔,通用中台是订单、支付、客户、用户。

# 五、中台建模五步法

  1. 业务域拆中台:核心域按业务流程切,通用域按功能聚合切,再归类到核心/通用中台
  2. 单个中台内做事件风暴:找实体、聚合、限界上下文,建立初版领域模型
  3. 跨中台扫描重构:不同中台独立建模后,会有对象重复、功能放错位置的情况——以主领域模型为基准,扫描其它模型,提炼重组
  4. 换一个主领域模型重复第三步,直到所有模型比对完
  5. 领域模型映射微服务,落地实现

第 1~4 步是战略设计(业务建模),第 5 步是战术设计(系统落地)。

# 六、答疑精华(很多人都会问的三个问题)

# 1. 子域和限界上下文到底什么关系?有量化划分标准吗?

  • 子域是粗分:按业务阶段或功能模块切,目的是把问题空间缩小到能做事件风暴的程度,不关心内部对象结构
  • 限界上下文是细分:在子域内通过事件风暴划出来,产出领域模型,可直接指导微服务设计
  • 没有量化标准,靠领域专家经验 + 团队权衡。也别指望一次建模就完美,领域模型本来就要多次迭代演进——边界划得清晰,演进成本就低

# 2. 为什么要工厂模式和仓储模式?依赖倒置图什么?

  • 工厂模式:聚合内对象多时,聚合根、实体、值对象要同时实例化,全靠聚合根构造太复杂,交给工厂封装。构造简单就不用
  • 仓储模式:应用逻辑通过仓储接口访问数据,仓储实现放基础层。换基础组件(比如换数据库)只换仓储实现,业务代码不动——这就是依赖倒置的现实收益
  • 补充:统计、批处理这类找不到聚合根的场景(实体相互独立但业务内聚),可以当"非典型聚合"处理,不设聚合根,其它设计方法照用。不要为了 DDD 而 DDD

# 3. 事件异步了,发布方和订阅方数据不一致怎么办?

  • 发布方:发 MQ 之前先把消息写本地库(和业务数据同一个本地事务)
  • 订阅方:处理消息之前先把收到的消息写本地库
  • 两边定期对账,发现不一致就定时重发,必要时转人工

微服务内的事件总线不是必须的——进程内事务好控制,如果不存在聚合间数据不一致的风险,直接用应用服务协调即可,别为引入而引入。

# 七、小结

  • 平台是能力复用,中台是能力复用 + 联通 + 融合,高度不一样
  • 传统企业要把核心能力也中台化,解决"双核心、两张皮"
  • 子域 = 中台,限界上下文 = 微服务,DDD 战略设计管建模、战术设计管落地
  • 所有原则都可以因地制宜地突破,唯一不能破的是:边界要清晰
编辑 (opens new window)
#DDD#中台#微服务
上次更新: 2026/10/08, 03:22:29
DDD分层架构与微服务架构模型
事件风暴与中台业务建模实战

← DDD分层架构与微服务架构模型 事件风暴与中台业务建模实战→

最近更新
01
奥格登基础英语 850 词
10-08
02
Elasticsearch 入门
10-08
03
Elasticsearch 优化
10-08
更多文章>
Theme by Vdoing | Copyright © 2023-2026 Malize | GitHub | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式