Write Path 和 Read Path 分离
写操作 latency 比读高很多
读和写的需求完全不同,所以需要分离
写的特点:强一致、顺序、不可重复
写通常要求 ACID
读是展示驱动,要求:高并发、可以延迟、可以不一致
读通常允许:最终一致性
CQRS
命令查询职责分离(Command Query Responsibility Segregation,简称 CQRS)是一种软件架构模式,用于将系统的“写入”(命令)与“读取”(查询)操作逻辑明确分离。
系统设计
数据从哪里来
谁写
谁读
什么时候读
是否允许延迟数据库其实不应该承载复杂读
数据库只负责简单读、写
复杂的读应该交给
- Elasticsearch
- ClickHouse
- Redis