目录
业务权衡
|--------|------------------|-------------------|------------------|
| 维度 | At-Most-Once | At-Least-Once | Exactly-Once |
| 消息丢失风险 | 高 | 低 | 无 |
| 消息重复风险 | 无 | 高 | 无 |
| 网络开销 | 最低(无重试) | 中等(可能重试) | 最高(事务+协调) |
| 适用场景 | 可容忍丢失的实时数据流 | 不允许丢失的日志采集 | 金融交易、精准统计 |
如何选择消息语义?
- At-Most-Once:优先性能与低延迟,接受数据丢失(如实时监控)。
- At-Least-Once:优先可靠性,接受重复(需业务去重,如订单状态更新)。
- Exactly-Once:强一致性场景(需Kafka事务+业务幂等性,如支付系统)。