@yanaraika 这个确实是一个折中的方法,但是实现的复杂度也非常高了。当然 NoSQL 的经过验证的分布式的主从架构更加可靠。至于时钟问题,确实是一个存在的因素,我没有过多研究,不过 Redis 作者在说 RedLock 的时候,没有认为这是一个主要问题。"well, you can assume your clock is mostly correct though!"
@huadi 最简单的例子。。。你确认写入成功后不再次读库,直接将你写入的数据返回给用户,这就是一种很常见的操作,主从分离这个事某种意义上是无法做到对开发者透明的,而且这里你有一个钻牛角尖的思路,就是主从之间的网络可能一抖抖个一分钟啥的,需要业务代码来容错,如果把这些东西加到研发成本里,基本上是没法接受的。OP 角度上来讲每个服务都是有他的可用性指标的,五个 9 以上我觉得这种抖动很难感知到,而如果你的业务在主从分离的场景下由于 db 的可用性指标不够导致业务上大面积的出问题,我建议你们换个更专业的 DB 和 OP,毕竟服务可用性他是一个系统性工程。