知识卡片
队列解耦速度
内容
队列把数据产生速度和处理速度解耦,让流处理系统能缓冲峰值、重试失败并按顺序消费。它不仅是中间件,更是实时架构中吸收不确定性的边界。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第14章《队列和流处理》"14.1 队列"一节(源文件:_epub-src/OEBPS/Text/102.xhtml)
- 结论依据:原文对比无队列的"即发即弃"方案与持久化队列方案,指出前者"不能保证所有数据被成功处理……也容易在请求高峰时期失败",而"将事件写入持久队列解决了这两个问题。当工作进程失败时,队列允许系统重试事件,并且当下游工作节点遇到处理的限制时能够提供一个事件缓冲区"。
- 原始内容:这个"即发即弃"方案不能保证所有数据被成功处理。例如,如果一个工作节点在完成分配的任务之前失败,那么并没有机制来检测或纠正该错误。该体系结构也容易在请求高峰时期失败……将事件写入持久队列解决了这两个问题。当工作进程失败时,队列允许系统重试事件,并且当下游工作节点遇到处理的限制时能够提供一个事件缓冲区。