知识卡片

读写分离是高并发读策略的共同本质

普通读书笔记卡

内容

加缓存、CDN、动静分离、写扩散读收件箱,表面不同,本质都是为读和写分别设计不同数据结构(CQRS)。写端保持实时准确,读端可有轻微延迟换高并发承载,两端靠消息队列或Binlog串联成最终一致性。缓存是读写分离的简化特例。发散:能否接受最终一致性,标准是业务上用户能否感知延迟,而非技术是否可行。

参考来源

- 位置:第8章《高并发问题》8.2.4节「总结:读写分离(CQRS架构)」(源文件:_epub-src/text/part0038.html) - 结论依据:原文明确说明加缓存、动静分离、重写轻读本质上都是读写分离,即CQRS架构,分别为读和写设计不同数据结构,写端实时准确,读端有延迟但用最终一致性支撑高并发,缓存是读写分离的简化特例,直接支持卡片论述。 - 原始内容:"无论加缓存、动静分离,还是重写轻读,其实本质上都是读写分离,这也就是微服务架构里经常提到的CQRS(Command Query Responsibility Separation)……缓存其实是读写分离的一个简化,或者说是特例:左边的写(业务DB)和右边的读(缓存)用了基本一样的数据结构……读比写有延迟……读和写之间是最终一致性,而不是强一致性。"