跳转到内容

x/messaging/pubsub · x/messaging/mq Primer

x/messaging/pubsub · x/messaging/mq Primer

Section titled “x/messaging/pubsub · x/messaging/mq Primer”

实验性 — API 兼容性未冻结。采用前请先评估。查看发布策略了解当前成熟度。

当你已经通过 x/messaging Primer 确认问题明确属于进程内发布订阅 broker 基础元语(x/messaging/pubsub)或持久化队列任务协调(x/messaging/mq)时,打开这一页。两者都是 x/messaging 能力家族内的下级包。

x/messaging/pubsub — 发布订阅 Broker 基础元语

Section titled “x/messaging/pubsub — 发布订阅 Broker 基础元语”

x/messaging/pubsub 负责进程内主题扇出、broker 基础元语和调试友好的 broker 支持。它被 x/messagingx/messaging/webhook(用于 pub-sub 到 HTTP 桥接)和 x/observability/devtools(用于本地 broker 检查)消费。

  • 你正在实现或修改主题扇出 broker 行为(broker.go
  • 你正在添加消费者组协调或竞争消费者投递(consumergroup.go
  • 你正在构建确认、背压或死信队列支持(ack.gobackpressure.godlq.go
  • 你正在为传输中的消息添加去重(dedup.go
  • 你正在构建分布式 pubsub 适配器(distributed.go
  • 工作是面向应用的消息功能发现 — 从 x/messaging Primer 开始
  • 改动关于 pubsub 事件的 HTTP webhook 投递 — 那属于 x/messaging/webhook
  • 工作引入通过 package init 注册的全局 broker — broker 必须显式注入
  1. x/messaging/pubsub/module.yaml
  2. x/messaging/pubsub/broker.go
  3. x/messaging/pubsub/consumergroup.go
  4. x/messaging/pubsub/ack.go

x/messaging/mq — 持久化队列基础元语

Section titled “x/messaging/mq — 持久化队列基础元语”

x/messaging/mq 负责持久化队列实现、任务持久化、worker 协调、死信处理和队列去重适配器。它为 x/messagingx/messaging/scheduler 在其上协调提供队列底层。

  • 你正在实现或修改持久化任务队列行为(broker.gopersistence.go
  • 你正在添加失败任务的死信队列处理(deadletter.go
  • 你正在构建队列任务的去重适配器(dedupe.godedupe_kv.godedupe_sql.go
  • 你正在实现优先级队列调度(priority.go
  • 你正在为任务投递添加确认语义(ack.go
  • 工作是面向应用的消息功能发现 — 从 x/messaging Primer 开始
  • 改动关于 cron 或延迟任务调度 — 那属于 x/messaging/scheduler
  • 工作引入业务工作流编排 — 保留在应用代码中
  • 改动需要稳定根入口点
  1. x/messaging/mq/module.yaml
  2. x/messaging/mq/broker.go
  3. x/messaging/mq/persistence.go
  4. x/messaging/mq/deadletter.go

x/messaging/pubsubx/messaging/mq 都是 x/messaging 的下级包,但属于不同层:x/messaging/pubsub 处理扇出投递语义;x/messaging/mq 处理持久化任务存储和 worker 协调。将它们分开防止耦合——只需要扇出的事件不需要持久化,而持久化任务队列不需要主题扇出语义,除非被显式桥接。