2. 核心概念:Event、Source、Sink、Broker、Trigger、Channel 的定义与关系

在 Serverless Eventing 体系中,事件驱动架构围绕六个核心概念构建。理解它们的定义与协作关系,是掌握生命周期发布包校验的前提。以下逐一拆解每个概念,并通过表格与架构图展示其完整链路。

2.1 核心概念定义

概念 英文 定义 类比(快递系统)
事件 Event 描述状态变化或已发生事实的不可变数据记录,包含元数据(类型、来源、时间)与载荷(Payload)。 快递包裹本身(内含物品与运单信息)。
事件源 Source 产生事件的实体,可以是微服务、SaaS 应用、IoT 设备或定时器。每个事件必须标明其来源。 寄件人(发起包裹)。
事件接收器 Sink 消费事件的最终目的地,通常是一个函数、服务或外部系统。Sink 接收事件后执行业务逻辑。 收件人(签收包裹)。
代理 Broker 事件网格中的中央路由组件,负责接收来自 Source 的事件,并根据 Trigger 规则将事件分发到对应的 Sink。 快递(按地址分拣包裹)。
触发器 Trigger 定义事件过滤与路由规则的策略对象。它描述“当某类事件到达 Broker 时,转发到哪个 Sink”。 快递面单上的地址标签(决定包裹去向)。
通道 Channel 底层事件缓冲与传输的抽象层,负责事件的持久化、排序与投递保证。Broker 内部依赖 Channel 实现。 快递运输线路(公路/航空/铁路)。
校验视角提示: 在发布包校验场景中,Event 的格式合规性(CloudEvents 标准)、Source 的身份可信度、Trigger 规则的正确性,是校验的三个关键检查点。

2.2 概念关系:事件驱动链路

六个概念并非孤立存在,它们构成一条完整的事件生命周期链路:

  1. Source 产生 Event,并将事件发送到 Broker。
  2. Broker 接收事件后,将其存入内部的 Channel 进行缓冲与持久化。
  3. Trigger 持续监听 Broker 中的事件流,根据过滤条件(事件类型、来源等)匹配事件。
  4. 匹配成功后,Broker 将事件从 Channel 取出,路由到对应的 Sink。
  5. Sink 消费事件,执行业务逻辑,完成一次事件驱动调用。
核心关系公式:
Source → Event → Broker (Channel) → Trigger (Filter) → Sink

2.3 概念关系架构图

下图展示了六个核心概念在 Serverless Eventing 中的完整协作关系与数据流向:

Eventing 核心概念关系架构图 Eventing 核心概念关系架构图 事件源 Source 微服务 / SaaS / IoT 事件 Event CloudEvents 格式 代理 Broker 通道 Channel (缓冲/持久化) 触发器 Trigger 过滤规则 + 路由策略 事件接收器 Sink 函数 / 服务 / 外部系统 产生 发送 监听 路由 校验关注点 ① Event 格式合规性 ② Source 身份可信度 ③ Trigger 规则正确性

2.4 概念对比:Broker vs Channel vs Trigger

这三个组件容易混淆,下表从职责、生命周期与校验维度进行对比:

对比维度 Broker Channel Trigger
职责 事件路由与分发中心 事件缓冲、持久化与传输 事件过滤与路由规则定义
生命周期 长期运行,与命名空间绑定 由 Broker 管理,自动创建/销毁 用户创建,可动态增删改
校验重点 可用性、吞吐量、配置正确性 数据完整性、投递保证(至少一次/精确一次) 过滤表达式语法、目标 Sink 可达性
是否对外暴露 是,Source 直接发送事件到 Broker 否,Broker 内部组件 是,用户通过 API 管理

2.5 事件流示例:发布包校验场景

以“发布包上传后触发校验”为例,展示六个概念如何协作:

  1. Source:CI/CD 流水线(如 Jenkins)检测到新发布包上传到对象存储。
  2. Event:生成 CloudEvents 格式事件,包含 type: "package.uploaded"、source: "jenkins/prod"、data: { packageId: "pkg-123", version: "1.2.3" }。
  3. Broker:接收事件,存入内部 Channel 进行持久化。
  4. Trigger:匹配 type == "package.uploaded" 且 source == "jenkins/prod" 的事件。
  5. Sink:调用校验函数,执行签名验证、元数据检查、依赖扫描等校验逻辑。
常见误区: 不要将 Trigger 视为事件消费者。Trigger 只是路由规则,真正的消费者是 Sink。Trigger 不执行任何业务逻辑,仅负责“匹配与转发”。

2.6 概念关系总结图

下图从更高维度展示六个概念在事件生命周期中的位置与依赖关系:

事件生命周期概念关系总结图 事件生命周期:概念关系总结 产生阶段 Source → Event 传输阶段 Broker + Channel 路由阶段 Trigger 过滤 消费阶段 Sink 执行 校验覆盖全生命周期 每个阶段都需要校验:Event 格式 → Broker 配置 → Trigger 规则 → Sink 可达性 Channel 的持久化保证是校验数据不丢失的关键

2.7 关键要点

  • Event 是核心载体:所有组件围绕 Event 的流转而设计,Event 的格式(推荐 CloudEvents)决定了系统的互操作性。
  • Broker 是中枢:它解耦了 Source 与 Sink,使得双方可以独立扩展与演进。
  • Channel 保证可靠性:通过持久化与重试机制,确保事件不会因 Broker 重启或网络抖动而丢失。
  • Trigger 提供灵活性:支持基于事件类型、来源、自定义属性的精确过滤,避免 Sink 收到无关事件。
  • 校验贯穿始终:在发布包校验场景中,每个概念节点都可能成为校验的切入点,后续章节将逐一展开。