Skip to content

异步事件全链路

mermaid
flowchart TD
    A["订单本地事务"] --> B["Outbox 写入 OrderCreated"]
    B --> C["Relay 发布到 Binder"]
    C --> D["Kafka/RabbitMQ 交换机或主题"]
    D --> E["消费组分配分区/队列"]
    E --> F["通知、支付、搜索消费者"]
    F --> G{"处理成功?"}
    G -- "是" --> H["ACK/提交 Offset"]
    G -- "否" --> I["按策略重试"]
    I --> J["超过预算进入死信并告警"]
    F --> K["幂等键与业务状态机"]

Stream 负责编程模型和 Binder 适配,消息代理负责持久化与投递,Bus 更适合广播配置刷新等控制事件。消费者必须幂等,不能把 ACK 当成业务事务提交的替代品。