背景介绍#
用户在内容平台生产的不同内容,通过标准化内容存储,处理,分发,回到不同用户手中进行消费
演进流程#
我们现在处于初创期,需要对于多种异构内容(点赞,转发,收藏进行表达存储)
内容模型标准化#
建模本质:将业务过程中产生的数据进行抽象和组织,并将其转化为物理结构
建模三步法:
- 概念模型 —> 业务驱动,拆解业务对象和关系
- 逻辑模型 —> 细化出实体,属性,实体关系
- 物理模型 —> 选择合适的数据库进行存储 ![[Pasted image 20250720213350.png]]
能力模型标准化#
- 过程式编码——难以引入新的能力
- 不同内容模型的转化流程需要维护
使用插件化思想(流水线?这里黑话没太懂)

架构组成说明:#
这里的编排引擎很有意思,通过不同的引擎调度,实现性能最大化,并且插件式好管理
-
管理后台 + DSL:
- 后台通过 DSL(领域特定语言)配置任务流程;
- DSL 存入数据库 DB。
-
有状态引擎工作流程
- 从 DSL 拉取任务定义;
- 将任务推入任务队列;
- 由执行器执行;
- 执行结果进入结果队列反馈;
- 调用具体的能力(如 Pigeon、Http、Mthrift 等服务能力)。
-
无状态引擎工作流程:
- 同样从 DSL 拉取定义;
- 提交给调度器;
- 根据批次并发执行;
- 通过分组调度器进行调度;
- 调用具体能力。
稳定性优化#
减压#
内容需要安全审核,而审核是多条发送,系统的吞吐量需求放大
设计了一个去重引擎,进行分批处理(类似一个mq,不过更轻量)
隔离分级#
就是优先处理,对于不同来源的信息进行优先级处理
可观测性#
总结#
美团的内容架构更多聚焦在用户生产内容的处理上,进行了一系列的优化,实现了内容系统的高可用,一致性,可维护性,其中插件化,编排引擎的思路指的学习
但是如果要处理动态的异构,不需要这么复杂的生产处理流程
- 一方面,动态是对用户行为的记录,不需要进行大量的安全性检查
- 另一方面,动态需要展示的用户行为是很有限的(点赞,收藏,转发),且几个行为的属性重合度很高,暂时没有对用户画像的需求,附加信息也少