Outbox Pattern 工程实践:数据库提交成功但消息发送失败怎么办
Outbox Pattern 用一张本地消息表把业务状态变更和待发送事件放进同一个数据库事务,再异步投递到消息队列。
栏目
按年份
Outbox Pattern 用一张本地消息表把业务状态变更和待发送事件放进同一个数据库事务,再异步投递到消息队列。
重复消息是消息系统里的常态,消费者必须通过业务唯一键、去重表、状态机和条件更新保证幂等。
消费失败不是异常边角,而是消息系统的常态。重试、死信、告警和补偿决定了失败消息能不能被闭环处理。
消息队列的稳定性要靠监控消费堆积、生产速率、消费速率、Broker 磁盘、分区热点和失败消息。
事件驱动架构用领域事件连接服务,降低同步耦合,但也带来了事件版本、最终一致、可观测性和治理问题。
计算引擎负责把数据从原始形态加工成指标、宽表、报表和模型特征,是消息队列与数据库之间的计算层。
分布式计算引擎通常把作业表达成 DAG,再切成 Stage 和 Task 并行执行,Shuffle 则是性能和稳定性最关键的成本来源。
Spark 通过 Driver、Executor、RDD、DataFrame 和 Spark SQL 组成一套通用分布式计算引擎,尤其适合大规模离线 ETL 和分析。
Spark SQL 性能优化的核心是理解 Catalyst、Join 策略、Shuffle、数据倾斜和分区设计。