基础发送流程

最小可用流程

第一版弹幕系统的最小可用发送流程:

一条弹幕的发送流程

用户进入房间,建立连接
01 · 动作

用户发送弹幕

内容 + 房间 + 用户
02 · 判断

服务端鉴权

是否登录、是否被禁言
03 · 判断

敏感词与频率校验

基础治理
04 · 动作

推送给房间内在线用户

实时链路,追求低延迟
05 · 动作

异步写入存储

回放、审核、统计
观众看到弹幕

两条链路已经出现

注意流程的最后两步:

  • 实时链路:鉴权 → 校验 → 推送,追求低延迟。
  • 异步链路:落库、统计、审核复盘,可以慢。

这个分离是后续所有架构演进(消息队列、礼物系统)的起点:慢的事别挡住快的事。

发送的时序

  • 客户端发送 → 网关快速响应(先给发送者「已发出」的反馈)。
  • 实时推送是主路径,异步落库是旁路。
  • 发送者自己也能通过广播看到(或本地乐观插入)。

失败怎么办

基础版本也要考虑失败:

  • 鉴权失败 → 拒绝,返回原因。
  • 命中敏感词 → 拦截或替换。
  • 推送失败 → 记录,不阻塞主流程(可重试或丢弃)。

一句话

基础发送流程把系统分成实时 + 异步两条链路:实时保证延迟,异步负责落库与治理。先把这两条链路理清,后面的消息队列就是在为它们分工。

下一节看基础治理——第一版也要做的护栏。