知识卡片

同步异步权衡

普通读书笔记卡 · 1789.b

内容

同步更新能让写入后查询立刻可见,但会把延迟和失败传播给写路径;异步更新提升吞吐和隔离性,却牺牲短暂时效性。选择哪种方式,本质是在用户可见新鲜度和系统韧性之间取舍。

参考来源

- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第12章《实时视图》"12.4 异步更新与同步更新"一节(源文件:_epub-src/OEBPS/Text/094.xhtml) - 结论依据:原文说明同步更新"直接向数据库发出请求,并阻塞直到更新操作被处理……促进了更新与应用程序其他方面的协调",而异步更新"提供了许多优势:首先……极大地提高了吞吐量。其次,它们对于不同负载的处理也很容易",但"同步更新的请求高峰可能使数据库过载,导致请求丢失、超时和其他破坏应用程序的错误"。 - 原始内容:同步更新速度较快,因为它们与数据库直接通信,并且促进了更新与应用程序其他方面的协调……异步更新提供了许多优势:首先,你可以从队列中读取多个消息并向数据库执行批量更新,这极大地提高了吞吐量……相反,同步更新的请求高峰可能使数据库过载,导致请求丢失、超时和其他破坏应用程序的错误。