数据访问模式与一致性模型

在 AWS 中使用数据存储

Dunieski Otano

AWS Solutions Architect

一刀切的问题

  • 产品目录:每秒数千次读取,少量更新
  • 购物车:频繁写入
  • 订单系统:不可丢失数据
  • 访问模式各异,需不同的数据存储策略

users

在 AWS 中使用数据存储

临时存储 vs 持久存储

  • 持久存储:重启后数据仍在

    • 磁盘存储,除非删除一直保留
    • AWS 示例:DynamoDB、S3、RDS、OpenSearch
    • 用于:用户数据、交易、文件、记录

    persistent

  • 临时存储:重启后数据丢失
    • 内存存储,设计为临时
    • AWS 示例:ElastiCache、EC2 Instance Store
    • 用于:会话数据、缓存、临时计算

ephemeral

在 AWS 中使用数据存储

读多 vs 写多的负载

  • 读多:读取多、写入少
    • 示例:产品目录、博文
    • 最佳:DynamoDB,S3 + 缓存
  • 写多:频繁更新
    • 示例:物联网传感器、点击流
    • 最佳:DynamoDB + 自动扩缩
  • 均衡:读写相当
    • 示例:社交帖、评论
    • 最佳:DynamoDB + 平衡容量

bars

在 AWS 中使用数据存储

一致性模型实战

  • 强一致性:始终返回最新数据
    • 更慢,但准确
    • 适用:金融数据、库存计数
  • 最终一致性:可能返回旧数据
    • 更快,但可能短暂延迟
    • 适用:用户档案、产品描述
  • DynamoDB 控制台:ConsistentRead 参数

 

table_query

在 AWS 中使用数据存储

在 AWS 控制台中探索服务

  • DynamoDB 控制台:表、项目、查询
  • S3 控制台:存储桶、对象、属性
  • ElastiCache 控制台:Redis/Memcached、节点、指标
  • 各服务的资源组织方式不同

services

在 AWS 中使用数据存储

将模式匹配到服务

  • 读多配最终一致性:DynamoDB、S3
  • 写多且高吞吐:DynamoDB
  • 缓存层:ElastiCache
  • 全文搜索:OpenSearch

consistency

在 AWS 中使用数据存储

Passons à la pratique !

在 AWS 中使用数据存储

Preparing Video For Download...