滚动新闻 →
密西西比州参议员科洛姆获川普公开肯定 民主党中期选举成果显现 SpaceX星舰第15次试飞突破轨道技术 机械哥斯拉首次亮相 唐元隽因涉嫌为中共搜集美国异议人士信息被纽约法院判缓刑三年 欧洲参与俄乌和谈遭分歧 战俘交换后冲突再升级 美国财长:伊朗黑客利用中国AI攻击法国超市冷藏系统 唐元隽涉非法搜集海外异议人士信息被判缓刑 双黄丑闻蔓延白宫 卢特尼克或因放水被问责 黄仁勋辞任事件引安全担忧 中共渗透手段升级 加拿大政界呼吁彻查中共海外警务据点 清华特等奖学金评选引争议 AI方向占比近全 前CIA局长之子因传播儿童色情制品被起诉 突发:新奥尔良港油轮撞上客船 多人落水 美国联邦航空总署实施全国航班停飞措施 退伍军人事务部长披露福利审批通过率高达94% 黄仁勋被美众议院三大委员会要求出席闭门听证会 法国10月通胀率突破3.7% 创近3年新高 山西男子砍伤妻岳母未被批捕 释放后勒死妻子引争议 黄仁勋辞职引台湾日本政界高度关注 唐元隽因向中共提供情报获三年缓刑 欧几里得望远镜发布首批观测数据 助力探索暗宇宙之谜 内蒙古化工厂氨气泄漏事件引争议,官方称属无毒催泪弹演练 英伟达共谍风暴升级 高阶芯片流向成焦点 西安村民因欠款问题冲击政务中心 无锡超算中心遭黑客入侵数据遭出售 网民质疑掩盖真相 Anthropic IPO超额认购六倍 加拿大各界在老兵纪念日缅怀阵亡将士并致敬军人 习近平称继承孙中山理念 学者质疑历史背离 孙中山纪念大会异常引关注 习健康状况引猜测 中国AI模型被指用于伊朗网络攻击 法国超市遭大规模破坏 雕刻大师现场展示技艺 纽约跨年水晶球亮相时代广场 Google Distributed Cloud 是什么,无法全部迁移到公有云的企业可以怎样部署 新疆库车市发生5.0级地震 乌鲁木齐民众普遍感知明显 美以海军高层会谈 土耳其卡塔尔签署防御协议 涉嫌为中共搜集情报 唐元隽纽约获三年缓刑 上海交大基因编辑实验致女童死亡 处罚仅限开除引争议 民主党参议院领袖选举引争议 范霍伦挑战舒默权威 江苏句容城管强抢餐车引摊贩冲突 中共借孙中山纪念进行统战操作 学者质疑继承论述模糊 黄乐与华为关联引调查 深圳数据中心牵出供应链疑云 京沪高铁山东段故障引争议 施工挖断电缆遭质疑

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

发布时间: 2026-10-22 14:00:02    最后更新: 2026-11-11 14:47:04    阅读:80  约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提供的是一种把这些复杂问题更多交给数据库平台处理的架构选择。
本文作者
程越(Kevin Cheng)
IT与人工智能技术资深编辑

喜欢这篇报道?

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

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

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