《亿级流量系统架构设计与实战》第七章 内容发布系统

内容总结自《亿级流量系统架构设计与实战》

内容发布系统旨在管理从用户发布内容到内容为大众所见的全生命周期流程,包括新建内容、修改内容、内容审校、内容分发、内容下架等。可以说,内容发布系统是面向用户的应用的核心功能性系统之一。

内容发布系统并不是一个简单地进行内容创建与数据存储的系统,其中有很多的业务细节与技术细节需要考虑。这里先抛出如下几个实际问题:

  1. 内容的表现形式可能足短文字、长文字、图片、音频、视频,也可能是这些表现形式的组合,我们应该怎样合理地存储内容?
  2. 用户发布的内容可能涉及反动、血腥、色情等问题,我们应该怎样迅速检测并屏蔽这些内容?
  3. 内容渠道有很多,比如主页、推荐流、好友动态、搜崇框等,我们应该怎样让这此内容渠道得知用户发布的内容?
  4. 内容一般读生写少,热门内容如热点新阳、明星八卦等都会直接吸引海量用户点击,我们应该怎样设计系统,才能避免系统因为无法应对海量用户的请求而导致内容无法被该取,甚至服务宕机?

一、内容存储设计

1、模型设计

信息表:item_info

字段名类型含义
item_idint内容唯一标识,主键。要求全局唯一,推荐使用分布式唯一ID生成器生成
creater_idint创作者ID
online_versionint线上内容的版本号
online_image_urlsvarchar线上内容相关的图片存储的URL列表
online_video_idint线上内容的相关视频存储的唯一标识
online_text_urlvarchar线上内容的相关长文本存储URL
latest_versionint最新变更的内容版本
create_timedatetime内容创建时间
update_timedatetime内容修改时间
visibilityint线上内容的可见范围:私密、好友可见、粉丝可见、所有人可见
statusint内容的状态:待审核、正常展示、被删除、被下架
extravarchar其它扩展字段

内容修改历史记录表:item_record

字段名类型含义
record_idint主键id
item_idint此次变更操作关联的内容id
latest_versionint此次变更内容的版本号
latest_statusint此次变更审核状态:待审核、审核通过、审核拒绝
latest_reasonvarchar此次变更审核不通过原因,如涉黄、涉恐、侵权等
latest_image_urlsvarchar此次变更涉及的内容相关的图片存储的URL列表
latest_video_idint此次变更涉及的线上内容的相关视频存储的唯一标识
latest_text_urlvarchar此次变更涉及的线上内容的相关长文本存储URL
update_timedatetime修改时间
create_timedatetime创建时间

每次变更内容后,都不一定化立刻将内容发布上线。item_ info 表的主要作用是存储此内容的基本信息,直接对接每个用户该取的内容元信息;而 item_ record 表的主要作用是存储内容交更记录,待内容审核通过后再将交更记录替换到 irem_infio 表中,相当于暂存待生效的内容元信息。


2、内容存储选型

  1. 短文本:可以直接存储到数据库,或者使用分布式文档数据库
  2. 长文本/图片/音频/视频:这些数据都是静态数据,更适合使用分布式文件存储系统或者分布式对象存储系统来存储。分布式对象存储会为所存储的文件返回
  3. 音视频转码:将已经编码的视频流转为另一种视频码流,以适应不同的网络带宽、终端处理能力和用户需求。本质就是先解码再编码的过程

3、内容查询

查询是一个高并发场景,优化策略:

  1. 使用CDN加速静态资源(图片、长文本、视频等)
  2. 缓存(Redis+Local Cache)和多副本(Redis集群)支撑高并发读取



二、内容审核设计

1、送审机制

1)全量送审

任何用户发布内容时,都触发内容审核机制

2)部分送审

可以制定业务指标规则,仅针对达到一定业务指标的内容进行送审操作。

业务指标参考:

  1. 粉丝量超过一定数量的创作者创作的内容,在发布和修改的时候都会触发送审机制
  2. 被举报、投诉超过一定数量的内容,触发送审机制
  3. 浏览量超过一定数量的内容,触发送审机制

2、审核方式

审核一般由人工智能审核和人工审核两种方式配合完成。

我们需要知道,无论是何种类型的内容,采用人工智能自动审核都不能保证100%判断正确,所以在给出审核结果的同时给出了审核结果判断的置信度。如果置信度极高,则认为采用人工智能进行判断的结果是可信的,判断为审核通过的内容就通过,判断为审核拒绝的内容就拒绝;而如果置信度很低,则属于存疑情况,计算机无法得出明确的结论,需要进一步做人工审核。人工审核的流程比较简单:一批审核人员人工判断内容是否应该通过审核。审核人员会经过公司的专门培训,在对什么内容不可通过审核有强烈的认知后,进人审核岗位。


3、审核中心的对外交互

当内容需要送审时,可以利用MQ通知审核中心,审核中心回查审核内容,继而完成审核操作。审核中心审核完成后,再通知内容发布中心,完成内容审核状态的修改

消息队列主题含义生产者消费者
event_audit_content内容送审核通知内容发布系统审核中心
event_audit_result内容审核结果通知审核中心内容发布系统

内容送审核通知流程图:

内容审核结果通知流程图:




三、内容分发设计



四、整体架构设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默辨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值