滚动新闻 →
西藏地震官方捐款账户遭抵制,信用危机再引争议 笔记本电脑充电时频繁断开,接口接触不良应该怎样判断 Windows 11 怎么创建本地账户?不使用在线账户时可以这样操作 底层戾气重 外卖员袭治安员 装修工锤击保安 MySQL 数据库创建怎么做?从字符集设置到权限分配建立第一套数据库 元曲为什么特别适合表现普通人的情感 美国最高法院恢复新罕布什尔州学生证投票限制 选举规则之争升温 黑豆与中国传统饮食文化 央视地震报道引发舆论质疑 官媒为何在灾难现场说不清民众最关心的事 重庆2岁男童坠楼案警方拒立案 家属质疑证据缺失 Costco限时上架冷冻那不勒斯披萨 引粉丝热议 毛笔的软硬对书写有什么影响 美国计划出台新规限制对华敏感科技投资 梅拉尼娅推动俄乌停火协议 聚焦奥列什基平民撤离 希腊立法禁止未成年人使用社交媒体平台 纽约中期选举提前投票即将启动 生活成本成为选民关注焦点 维权人士邢望力狱中遭虐待 身体状况恶化求助国际关注 川普总统重启俄罗斯柴油供应 美国能源政策转向务实路线 沃尔沃因中国市场压力再裁员2500人 问界车辆行驶中起火 华为称‘阳光引燃’引争议 海口外卖员送餐途中猝死 电梯口发现遗体 中共‘精准介入’台湾大选 AI统战成新手段? 沪独生女继承2亿遗产半年后遭丈夫起诉分产引热议 孩子嫉妒别人时父母应该怎么引导 SD卡不同速度等级应该怎么看 元朝为什么没有长期延续蒙古帝国的扩张 法国暴力骚乱背后的极左网络 从街头纵火到跨国政治动员 沃尔玛推出山姆会员店联合会员服务 年费120美元享双重福利 低成本改善家居环境可以先从哪些地方入手 中国维权者处境引关注 访民事件发布者遭拘押 举报者与欠薪工人各自求助无门 中共政治局会议提前召开 人事变动引发多方猜测 美国接收俄罗斯柴油 油价突破115美元 朝鲜边境埋设96万枚地雷 韩国提议军事会谈防冲突 中共纪念长征大会出现多处异常 习近平讲话内容大幅缩减 美国第七批UFO档案披露 神秘三角飞行物现身军事基地 非洲四国埃博拉疫情升级 尼日利亚感染路径待查 拉面文化为什么能够体现地域特色 英国政府敦促民众储备三天应急物资应对多重风险 法国骚乱背后的跨国极左网络 街头暴力与政治动员如何相互交织 西藏巴青县7级地震致百人伤亡 民间救援遭阻拦

Google Cloud Spanner 是什么,全球分布式数据库解决了哪些实际问题

发布时间: 2026-10-22 14:00:02    最后更新: 2026-10-23 16:43:54    阅读:39  约9 分钟阅读     

Google Cloud Spanner 是什么,全球分布式数据库解决了哪些实际问题
图片说明:示意图   图片来源:Public Domain(公有领域)
Google Cloud Spanner是Google Cloud提供的全托管分布式关系型数据库服务,目标是把关系数据库的事务模型、SQL能力与跨区域扩展结合起来。它并不是简单地把一台MySQL服务器复制到几个国家,而是在底层将数据划分为可以独立管理的Split,再通过多副本同步复制、事务协议和自动负载管理,让一个数据库能够跨越多个故障域运行。对于需要高可用、事务一致性以及大规模水平扩展的业务,Spanner解决的核心问题,是如何在数据规模和用户地域不断扩大以后,仍然保持关系数据库的事务语义。

Spanner最重要的特征之一是外部一致性(External Consistency)。Google官方文档将其描述为比通常所说的“强一致性”更严格的事务排序保证:事务不仅能够以可串行化方式提交,而且不同客户端观察到的提交顺序与事务实际提交顺序保持一致。Spanner利用TrueTime提供的时间不确定性界限辅助事务提交排序,同时使用基于Paxos的复制机制维护不同副本之间的一致性。这里需要注意,TrueTime并不是简单意义上的“全球服务器时钟同步到毫秒级”,它提供的是带有不确定性区间的时间服务,Spanner利用这个区间来完成外部一致性所需要的提交排序。

Spanner的另一个核心设计是数据自动分片。数据库中的数据并不是永远放在某一台服务器上,而是按照主键范围等方式划分成多个Split。随着数据规模和访问负载变化,Spanner可以自动增加或调整Split边界,并将不同Split分配到不同服务器,从而把计算负载分散开来。Google官方文档还说明,Spanner可以根据负载进行Split,以缓解某些读取热点。因此,Spanner的水平扩展并不是传统意义上由开发人员手工维护大量数据库Shard,而是由数据库服务负责大量底层分片管理。

但是,自动Split并不意味着任何数据库设计都能够无限扩展。主键设计仍然非常重要。如果大量写入集中在一个连续的键范围,或者业务产生明显的热点,数据库仍然可能出现资源集中。Google官方性能文档也明确建议设计能够避免热点的Schema。因此,Spanner虽然把大量分片管理工作自动化了,但并没有取消数据库Schema设计的重要性。

多区域部署则解决了另外一个问题,也就是单一区域发生故障时数据库能否继续提供服务。Spanner可以使用区域、双区域和多区域配置。在多区域配置中,数据会被复制到多个区域,并通过投票副本形成写入Quorum。Google当前的基础多区域配置包含多个读写副本以及Witness等副本角色,其中一个读写区域被指定为默认Leader Region。写事务首先在Leader Region处理,并通过复制机制完成提交;如果默认Leader Region发生故障,Spanner可以在其他读写区域重新建立Leader,从而维持数据库服务。

这里也容易产生一个误解:Spanner并不是把全球所有写请求自动发送到距离用户最近的数据库区域。对于多区域部署,写事务存在Leader Region概念。如果应用部署在非Leader区域,写操作仍然需要与Leader相关副本完成协调。Spanner提供Leader-aware routing,可以把客户端的读写事务请求更有效地路由到Leader Region,从而减少不必要的网络往返,但这与传统意义上的“DNS自动寻找最近服务器”不是一回事。

读操作则具有更多选择空间。Spanner提供强一致读取,也支持在特定场景下使用具有时间新鲜度限制的读取方式。对于全球部署的应用,如果某些业务允许读取略旧的数据,就可以利用更接近用户的副本降低读取延迟;如果业务要求读取最新提交的数据,则需要根据数据库配置和读取方式承担相应的跨区域协调成本。Google的多区域性能建议也特别指出,非Leader区域的低延迟读取可以通过适当的Staleness设置获得,而写密集型应用则应该尽量把关键计算资源放在Leader Region附近。

这意味着Spanner解决的是一个很具体的架构问题:企业不希望把全球业务拆成几十个彼此独立的数据库,再由应用程序自己解决数据同步、冲突处理和跨区域事务;同时又不希望所有数据都集中在一个区域,以至于全球业务扩展以后出现可用性、故障恢复和容量瓶颈。Spanner提供的是一个统一的数据库抽象,让企业可以在一个数据库体系内进行跨区域复制、事务处理和水平扩展。

例如,一家跨国电商平台可能同时拥有北美、欧洲和亚洲用户。订单、库存、账户余额等数据之间存在明显的事务关系。如果业务要求多个数据修改必须作为一个原子事务提交,那么把数据拆成多个完全独立的区域数据库以后,应用层就必须自己处理跨数据库事务和数据一致性。Spanner可以把这部分复杂性下沉到数据库层。当然,这并不意味着所有电商系统都必须使用Spanner。很多业务通过单区域关系数据库、只读副本、缓存、消息队列或者应用层分片同样能够满足需求,而且成本和架构复杂度可能更低。

Spanner的价值还体现在它把数据库扩展与故障处理的一部分运维工作交给托管服务。随着数据增长,Spanner可以自动进行Split;不同副本可以分布在不同故障域;多区域配置可以通过复制和Quorum机制提高区域级故障容忍能力。对于企业,这减少了手工维护数据库集群、复制拓扑和分片迁移的工作量。不过,“自动管理”并不意味着企业无需进行容量规划。Spanner仍然需要配置足够的计算容量,并且Schema、索引、主键和查询方式都会影响实际性能。

全球数据库还有一个容易被忽视的问题,就是数据所在地。不同国家和行业可能存在数据驻留、隐私以及监管要求。Spanner允许企业选择区域或多区域配置来控制数据存储范围;目前的文档还提供了Geo-partitioning能力,可以根据Placement把数据分布到不同的实例分区,并针对特定业务数据实现更细致的地域放置。该能力目前属于Enterprise Plus中的Pre-GA功能,因此不能把它简单理解成所有Spanner部署默认拥有的全球自动分片能力。

Spanner也不是传统MySQL的简单升级版。两者都提供关系模型和SQL,但底层架构和适用场景存在明显差异。一个中小型企业如果业务主要集中在一个国家或一个区域,数据规模并不大,也没有跨区域强一致事务的要求,那么普通MySQL加备份、只读副本、缓存以及必要的分片,可能已经能够满足需求。为了一个只有几十GB数据的网站建立全球多区域Spanner集群,就像为了每天买一袋面包而购买一辆集装箱卡车,技术上当然可以,经济上却未必合理。

Spanner真正值得考虑的场景,是数据库本身已经成为全球业务架构中的核心基础设施,同时企业确实需要关系数据库的事务能力、跨区域高可用、自动水平扩展以及统一的数据模型。例如全球账户系统、订单系统、金融类交易平台、大型SaaS平台以及需要跨区域运行的核心业务,都可能从这种架构中受益。对于只需要全球内容分发的应用,则没有必要因为“全球用户”四个字就直接选择Spanner,CDN、缓存和区域化应用架构往往解决的是另一类问题。

Spanner的代价也必须计算进去。多区域副本意味着更复杂的网络协调和更高的基础设施成本;跨区域写入天然存在网络距离,因此不能期待“全球强一致”与“单区域本地数据库一样低的写延迟”同时免费获得。Google官方文档也明确指出,多区域配置中的副本需要形成跨区域写入Quorum,因此写延迟会受到区域之间网络距离影响。

因此,Google Cloud Spanner真正解决的并不是简单的“数据库容量不够大”问题,而是传统关系数据库在全球化业务中同时面对的几个结构性挑战:如何保持事务一致性,如何跨故障域复制数据,如何随着数据和负载增长进行水平扩展,以及如何让全球应用在统一数据库模型下继续运行。它把大量分布式数据库的复杂机制隐藏在托管服务内部,但并没有消除分布式系统本身的成本。

对于企业架构设计,选择Spanner的关键也不是单纯比较“谁的QPS更高”,而是先判断业务是否真的需要全球多区域事务、高可用和水平扩展。如果业务规模和地域要求有限,传统MySQL、PostgreSQL加复制、缓存、消息队列或应用层分片仍然可以构成非常成熟的架构;如果业务已经进入全球化阶段,并且数据库一致性、区域故障恢复和水平扩展成为核心约束,那么Spanner提供的是一种把这些复杂问题更多交给数据库平台处理的架构选择。

喜欢这篇报道?

使用下面的功能,方便以后继续阅读和分享 MNewsTV

设为 Google 新闻首选来源 让 Google 新闻优先显示 MNewsTV 的最新报道 ›
★ 我的收藏 查看已经收藏的文章
关于文章收藏 收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。 删除收藏请进入「我的收藏」进行管理。
分享这篇报道

捐助(Paypal): https://www.paypal.me/observeccp
订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP