生活分享

Google Cloud 宣布 Spanner queues 正式推出:把消息队列放进数据库事务,瞄准 AI 智能体可靠性

Google Cloud 宣布 Spanner queues 正式推出,让消息创建成为数据库事务的一部分,目标是解决 AI 智能体“状态”与“动作”不同步的问题。本文整理官方说法、主要功能以及对普通读者的意义。

阅读时间约 6 分钟

Google Cloud 宣布 Spanner queues 正式推出:把消息队列放进数据库事务,瞄准 AI 智能体可靠性
图片:Mokaair (Original editorial artwork)

Google Cloud 宣布了什么

Google Cloud 在官方博客宣布 Spanner queues 正式推出(general availability,即不再是测试版)。Spanner 是 Google Cloud 的数据库服务;据该公司说明,Spanner queues 是直接内置在 Spanner 数据库中的原生事务性消息功能。文章由产品经理 Nitin Sagar 与工程经理 Matthew Mucklo 署名。

这里的“队列”可以理解为一张排队等待处理的工作清单;“事务”则是一组绑定在一起的数据变更,要么全部完成,要么全部取消。Google Cloud 表示,使用 Spanner queues 时,创建一条消息只是事务中的另一笔写入。换句话说,AI 智能体(能自主执行退款、管理库存等工作的 AI 程序)更新自身状态,以及“接下来要做什么”的指令,会被视为同一件事一起写入;要么全部成功,要么全部不生效。

它想解决的问题:状态与动作不同步

Google Cloud 指出,AI 智能体常需要在数据库中记录内部状态,同时再通过另一套消息或事件队列系统派发异步动作(无需等待立即完成、稍后才执行的工作)。该公司认为,两套系统各自提交,会破坏事务一致性。

Google Cloud 举出两种失败情形:一是数据库已更新、但动作没发出,智能体“决定了却没做”;二是动作已发出、但数据库更新被回滚(撤销),智能体根据无效的状态采取行动。该公司表示,开发者过去必须自行构建 outbox 模式(一种先把待发消息存进数据库、再另行发送的常见做法)、幂等层(确保同一个动作重复执行也不会产生重复结果的机制)与对账程序等补救机制,并形容这是沉重的可靠性负担。

传统做法与 Spanner queues 对比,内容均依据 Google Cloud 官方博客描述整理
方面传统做法(据 Google Cloud 描述)Spanner queues(据 Google Cloud 介绍)
状态与消息数据库与消息系统分开提交同一事务内一起提交或一起失败
延迟与调度需外部 cron 调度器(定时执行任务的工具)或轮询消息可立即派发或安排在未来送达
可靠性加固自建 outbox、幂等层、对账程序保证消息至少送达一次、确认至多一次,可借此实现恰好处理一次
监控方式消息存储常像黑盒用标准 SQL(操作数据库的通用查询语言)查询队列数据表

主要功能要点

  • 原子性的决策与入队:Google Cloud 表示,智能体可在同一事务中更新记忆或状态,并把任务交给其他智能体,两者不可分割地一起完成。
  • 调度与延迟:据该公司介绍,延迟重试、定时检查或 SLA(服务水平承诺)升级计时器都可与状态更新一起写入。
  • 人工审批与超时:Google Cloud 举例,等待主管批准时,可记录待审批状态并安排在 72 小时后升级处理;若主管提前批准,可在同一事务中取消该升级任务。
  • 租约管理:“租约”是处理程序临时领取一项任务的期限。Google Cloud 表示 Spanner 会自动管理消息租约,处理耗时较长的 LLM(大语言模型)推理或外部 API 调用时可延长租约。
  • SQL 监控:该公司表示可用 GoogleSQL 定义、查看与管理队列,并用标准 SQL 审计执行记录。

Google Cloud 还特别区分了 Spanner change streams 与 Spanner queues:前者用于持续捕获数据库的数据变更,并流式传输到下游分析或存储;后者则专为事务性任务编排设计。

对普通读者有什么影响

普通用户不会直接操作 Spanner queues,但可能间接感受到它想解决的问题。Google Cloud 以退款与审批为例说明:如果智能体的“记录”与“实际动作”不同步,可能出现该做的事没做,或审批后仍收到催办通知等情况。Google Cloud 表示,这项功能正是把这类一致性问题交给数据库处理。

Google Cloud 表示,Spanner queues 也可用于 AI 智能体以外的场景,例如社交动态、新闻实时更新、零售订单与库存流程,以及金融服务的交易通知。实际效果仍取决于各企业如何设计与使用,目前也没有独立来源验证其表现。

常见问题

Spanner queues 是什么?

据 Google Cloud 介绍,它是直接内置于 Spanner 数据库的事务性消息功能,创建消息就像在事务中多写一笔数据,与其他数据更新一起成功或一起失败。

为什么 Google Cloud 说它特别适合 AI 智能体?

Google Cloud 指出,AI 智能体常要一边记录状态、一边派发动作,两者若分属不同系统,可能出现决定了却没执行,或根据无效状态执行的情况。Spanner queues 让两者在同一事务内完成。

它能保证任务只执行一次吗?

Google Cloud 表示其保证至少一次送达与至多一次确认,用户可借此“实现”恰好一次处理。这意味着仍需配合正确的应用程序设计,例如该公司示例中把任务编号作为外部 API 的幂等键,让重复发送的请求不会被执行两次。

它和 Spanner change streams 有什么不同?

据 Google Cloud 说明,change streams 用于持续捕获数据变更并流式传输到下游分析或存储;Spanner queues 则用于事务性任务编排,支持消息租约、定时送达、SQL 拉取与事务内确认。

这些说法经过独立验证了吗?

没有。本文信息仅来自 Google Cloud 官方博客,属厂商公告,目前未见独立第三方的测试或确认。

查看同分类最新消息

最新旅游情报攻略

资料来源

生活分享