Lunarain_079's Inn

Back

背景介绍#

用户在内容平台生产的不同内容,通过标准化内容存储,处理,分发,回到不同用户手中进行消费

演进流程#

我们现在处于初创期,需要对于多种异构内容(点赞,转发,收藏进行表达存储)

内容模型标准化#

建模本质:将业务过程中产生的数据进行抽象和组织,并将其转化为物理结构

建模三步法

  • 概念模型 —> 业务驱动,拆解业务对象和关系
  • 逻辑模型 —> 细化出实体,属性,实体关系
  • 物理模型 —> 选择合适的数据库进行存储 ![[Pasted image 20250720213350.png]]

能力模型标准化#

  • 过程式编码——难以引入新的能力
  • 不同内容模型的转化流程需要维护 使用插件化思想(流水线?这里黑话没太懂)

架构组成说明:#

这里的编排引擎很有意思,通过不同的引擎调度,实现性能最大化,并且插件式好管理

  • 管理后台 + DSL

    • 后台通过 DSL(领域特定语言)配置任务流程;
    • DSL 存入数据库 DB。
  • 有状态引擎工作流程

    1. 从 DSL 拉取任务定义;
    2. 将任务推入任务队列;
    3. 由执行器执行;
    4. 执行结果进入结果队列反馈;
    5. 调用具体的能力(如 Pigeon、Http、Mthrift 等服务能力)。
  • 无状态引擎工作流程

    1. 同样从 DSL 拉取定义;
    2. 提交给调度器;
    3. 根据批次并发执行;
    4. 通过分组调度器进行调度;
    5. 调用具体能力。

稳定性优化#

减压#

内容需要安全审核,而审核是多条发送,系统的吞吐量需求放大 设计了一个去重引擎,进行分批处理(类似一个mq,不过更轻量)

隔离分级#

就是优先处理,对于不同来源的信息进行优先级处理

可观测性#

总结#

美团的内容架构更多聚焦在用户生产内容的处理上,进行了一系列的优化,实现了内容系统的高可用,一致性,可维护性,其中插件化,编排引擎的思路指的学习

但是如果要处理动态的异构,不需要这么复杂的生产处理流程

  • 一方面,动态是对用户行为的记录,不需要进行大量的安全性检查
  • 另一方面,动态需要展示的用户行为是很有限的(点赞,收藏,转发),且几个行为的属性重合度很高,暂时没有对用户画像的需求,附加信息也少
大众点评内容平台架构实践
https://www.lunarain.top/blog/%E5%A4%A7%E4%BC%97%E7%82%B9%E8%AF%84
Author Lunarain_079
Published at July 22, 2025
Comment seems to stuck. Try to refresh?✨