知识卡片
中心数据库与分布式数据库的根本取舍
内容
把所有数据放进一个中心数据库最简单——没有键值映射、没有更新协调、数据随时可见一致,但代价是它会变成单点故障和性能瓶颈,对地理分布的用户还会带来明显的延迟,一旦系统比预期更成功,扩展会很痛苦。反过来,把数据复制或分区到多个位置能降低延迟、提升可用性,代价是分布式架构本身难设计难实现,复制延迟几乎必然带来数据不一致,且非只读副本的更新协调是出了名的难。两条路都不是免费的,选择前必须想清楚系统未来的数据量、用户量和地理分布会怎么增长,而不是先图眼前简单。
参考来源
《软件系统架构:使用视点和视角与利益相关者合作》第18章《信息视点》