分布式数据库系统将数据分散到多个物理位置(如服务器或数据中心),但对用户而言,它表现为一个单一的逻辑数据库。 这种架构有三个主要优势:提高可用性和容错能力、可扩展的性能,以及为地理位置分散的用户优化数据访问。通过分配数据和处理,这些系统解决了传统集中式数据库在现代高需求环境中的局限性。
第一个主要优势是高可用性和容错能力。分布式数据库在各个节点之间复制数据,确保当一个节点发生故障时,其他节点可以继续提供服务。 例如,一个金融应用程序可能会在三个区域(例如,北美、欧洲和亚洲)中存储交易记录。 如果一个自然灾害中断了一个区域,用户仍然可以从剩余的节点访问数据。 这种冗余还允许滚动升级而无需停机——开发人员可以一次更新一个节点,而其他节点处理流量。 像 Apache Cassandra 这样的系统使用可调整的一致性级别来平衡可用性和数据新鲜度,让开发人员可以根据用例优先考虑容错能力或严格的准确性。
水平可扩展性是另一个优势。 与垂直扩展(升级单个服务器的硬件)不同,分布式系统通过添加更多节点来进行扩展。 例如,一个处理数百万并发用户的社交媒体平台可以在流量增长时向其数据库集群添加通用服务器。 分片——将数据分成存储在不同节点上的分区——可以实现并行查询处理。 例如,MongoDB 的分片功能根据选择的键将文档分布在各个分片上,从而降低单个节点的负载。 这种方法还允许使用更便宜的硬件而不是昂贵的高端服务器进行经济高效的扩展。
最后,分布式数据库通过减少延迟来提高全球应用程序的性能。 通过将数据存储在更靠近用户的位置(例如,将欧洲客户数据放在法兰克福服务器中,而不是放在美国中央数据库中),读/写操作完成得更快。 内容分发网络 (CDN) 经常使用这个原理,但分布式数据库将其应用于动态数据。 Amazon DynamoDB 的全局表自动跨区域复制数据,让东京的游戏服务器可以在本地访问玩家资料,而无需等待跨洲际的网络调用。 此外,分配工作负载可以防止瓶颈——一个天气应用程序可以在一个节点集群中处理历史数据查询,而实时传感器数据摄取可以在其他地方进行。