模型与取舍
| 模型 | 保证 | 代价 |
|---|---|---|
| 线性一致 | 读到最新已提交写入 | 写入需共识,延迟高 |
| 因果一致 | 因果相关的操作顺序可见 | 实现复杂,跨分区成本 |
| 读己之写 | 同一会话看到自己的写入 | 会话粘滞或令牌传递 |
| 最终一致 | 停止写入后副本收敛 | 旧读窗口,需业务容错 |
示例
示例
// MongoDB:写多数派 + 读多数派
await db.orders.insertOne(
{ _id: 1, status: "created" },
{ writeConcern: { w: "majority" } }
);
db.orders.find({ _id: 1 }).readConcern("majority");
# Elasticsearch:写入后立即按 ID 读取是实时的,但搜索要等 refresh
GET /orders/_doc/1
GET /orders/_search业务侧常见折中:写用多数派保证不丢,读按场景分:详情页读主库节点,列表页可接受秒级旧读。