用途:在系统设计中把工作从同步请求路径移出,解耦生产者与消费者。适合内联过慢的操作、突发写入缓冲、服务独立失败或部署、多个消费者共享事件流。不适合调用方必须立即拿到结果的同步读写、单请求内强读写一致,以及无需理由就引入 broker 的场景。
主要能力:先厘清同步或异步、投递保证、顺序范围、吞吐与保留期、消费者模式、失败处理,再在队列、发布订阅、流日志、持久化工作流之间选择。默认至少一次投递加幂等消费者;讨论确认点、分区键、保留窗口、重试上限与死信队列。
使用方式:先判定同步或异步,若需内联结果则停止;按权衡表选最省事的形态;设定投递语义、确认点、顺序键、保留期与重试上限;再对积压增长、重试风暴与毒消息、重复放大、热分区、慢消费者做压力测试;用峰值生产与消费速率、保留期、分区数做容量估算。定义消息信封(message_id、schema_version、partition_key、trace_id)与死信队列结构。若用户指定云厂商,再查阅对应 provider 文档。
适用场景:后台任务、事件扇出、事件溯源、可重放日志、带重试与补偿的 saga。
限制:真正端到端恰好一次不现实,跨系统通常实现为至少一次加幂等;全局顺序昂贵,通常按 key 即可;无界积压会掩盖故障;不要为假同步做请求应答队列;未提供具体收费、价格或平台效果信息。