Google PCD: 应用数据、状态和存储模式 — 学习指南

属于 Google Professional Cloud Developer — 学习指南. 使用经过验证的答案练习: Google 考试中心, 或参加限时模拟考试: ExamRoll.io.

概览

Google Cloud 上的现代应用通常会组合使用多种数据存储,以平衡延迟、一致性、可伸缩性、成本和运维复杂性。选择适合特定用途的服务和模式,并理解它们的故障模式,是弹性设计的核心。本节总结了 Cloud SQL、Cloud Spanner、Firestore、Bigtable、Memorystore 和 Cloud Storage 的实践指南,并探讨了迁移、分区和数据保护等问题。

Cloud SQL 上的关系型数据

Cloud SQL 提供托管的 MySQL、PostgreSQL 和 SQL Server,具有大家熟悉的 RDBMS 语义。

常见故障模式及缓解措施:

Cloud Spanner 上的全球级关系型数据库

Cloud Spanner 提供水平可伸缩性及全球一致性选项。

权衡取舍:

NoSQL 操作型存储:Firestore 和 Bigtable

选择与查询模式和吞吐量特征相匹配的 NoSQL 模型。

缓存与对象存储模式

undefined

-

undefined

undefined

迁移、一致性、分区和数据保护

实践问题场景

Aurora Outfitters 正在将其单体式电子商务平台迁移到 Google Cloud。他们必须:1) 将 MySQL 直接迁移(lift-and-shift)到云上以降低风险,2) 在不使应用过载的情况下处理 500 MB 的产品媒体上传,3) 扩展产品目录的读取吞吐量,以及 4) 在销售高峰期强制执行每用户速率限制。

方法:

  1. 将 MySQL 迁移到具有私有 IP 和区域级 HA 的 Cloud SQL

    • 理由:私有 IP 消除了公网暴露和 IP 允许列表的需求,简化了从 GKE 和 Compute Engine 进行安全连接的配置。区域级 HA 可防止区域性故障;预计故障切换期间会出现短暂的连接中断,因此应用将实现可重试的事务和重连逻辑。
  2. 启用自动备份和 PITR,并验证恢复

    • 理由:自动备份和事务日志使得可以从用户或应用程序错误中进行时间点恢复(PITR)。每周安排一次到非生产实例的恢复操作,以验证备份的可用性并衡量 RTO。
  3. 为目录读取添加一个只读副本

    • 理由:将目录查询移至只读副本可以减少主实例上的资源争用。当需要写后读一致性时(如购物车/结账),应用从主实例读取;而在浏览目录时,则从副本读取,同时理解并接受副本延迟带来的权衡。
  4. 引入应用侧连接池并限制并发

    • 理由:使用 PgBouncer/HikariCP 等工具限制和复用连接,避免在自动扩缩容和 HA 故障切换期间出现连接风暴。连接池的大小根据 CPU 核心数而不是最大 Pod 数来设定,以防止数据库过载。
  5. 使用签名 URL 和可续传上传将媒体上传任务卸载到 Cloud Storage

    • 理由:应用为客户端签发短期有效的签名 URL,使其可以直接上传文件。可续传上传能够适应不可靠的网络环境;媒体服务监听 Pub/Sub 的上传完成通知以触发后续处理。使用前置条件标头(ifGenerationMatch)可防止覆盖竞争。
  6. 实施 Memorystore for Redis 用于页面缓存、会话管理和速率限制

    • 理由:对于产品页面,使用通读缓存(read-through cache)可以减少数据库负载,其 TTL 与数据更新频率保持一致。会话数据作为临时信息保存在 Redis 中,并设置较短的 TTL;应用状态仍保留在 Cloud SQL 中。采用固定窗口令牌策略,使用 INCR/EXPIRE 命令实现每用户请求上限。缓存被视为非权威数据;应用能够容忍缓存丢失并在未命中时重新填充。
  7. 为高吞吐量的目录浏览功能准备分阶段迁移到 Cloud Bigtable 的路径

    • 理由:随着流量增长,将反规范化、为读取优化的目录视图迁移到 Bigtable。行键被设计为 bucket#category#reverse_ts 的格式,以分散写入并支持时间倒序的列表,从而避免热点问题。
  8. 建立模式迁移和回滚程序

    • 理由:迁移是增量式的:添加列/索引,通过幂等作业回填数据,部署同时支持新旧字段读写的代码,之后再移除旧字段。使用功能标志来保护新代码路径;回滚时会禁用对新字段的写入,而无需执行破坏性的 DDL 操作。
  9. 设置数据生命周期和保护策略

    • 理由:Cloud Storage 存储桶使用生命周期规则将缩略图转换到更冷的存储类别,并删除过期的临时上传文件。定期恢复 Cloud SQL 备份以及(未来采用的)Spanner/Bigtable 备份进行验证。审计日志记录删除工作流;在合规性文档中承认 Bigtable 的 GC 是异步的。
  10. 实施客户端和服务器端的带截断指数退避的重试机制

    • 理由:在流量高峰期,Cloud Storage 可能会返回 429/5xx 错误;退避机制可以平滑负载并降低错误率。数据库和缓存操作使用幂等键来确保重试的安全性,尤其是在故障切换和网络抖动期间。

该计划通过采用具有私有连接和 HA 的 Cloud SQL 立即降低了风险,通过缓存和签名 URL 上传保持了应用的响应能力和成本效益,并为随着流量增长扩展读取吞吐量和数据弹性构建了清晰的路径。


API 设计、集成与事件驱动开发 · 所有领域 · 身份、认证与应用安全

练习这些题目 → · 在 ExamRoll.io 上限时练习 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通过考试 →

浏览 Google →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品