内容提要
金融机构正面临变革,消费者对数字互动和服务访问的期望增加,对实体服务的依赖度降低。监管压力增加,金融服务机构转向可观察性以促进发展和创新。可观察性在金融服务和保险行业中具有商业价值。
延伸解读
从Dynamo到DynamoDB:设计取舍
Dynamo提供了可扩展性和可预测的高性能,但单租户架构导致每个团队需自行管理数据库, adoption 门槛高。SimpleDB虽托管且易用,却受限于10GB表容量、低吞吐和不稳定的延迟。DynamoDB融合两者优势,于2012年推出,成为完全托管的云服务,兼顾扩展性与易管理性。这一演进体现了亚马逊在内部实践基础上对数据库服务的持续优化。
分区与复制:可用性与一致性的平衡
DynamoDB表被划分为多个分区,每个分区有多个跨可用区的副本,形成复制组。复制组使用Multi-Paxos协议进行共识和领导者选举,领导者处理所有写请求和强一致性读,其他副本可服务最终一致性读。写操作需法定人数确认,确保数据持久性。领导者通过租约机制维持地位,故障时可触发新选举。这种设计在保证高可用的同时,也需权衡一致性与延迟。
应对热点分区:突发与全局准入控制
早期DynamoDB按分区静态分配吞吐量,导致非均匀访问下出现热点分区和吞吐稀释,引发限流。为此引入突发能力,允许分区在短时间内使用未利用的容量吸收尖峰。对于长时偏差,则通过全局准入控制(GAC)集中跟踪表级令牌消耗,请求路由器本地维护令牌桶并与GAC同步,实现更平滑的流量管理。这些机制共同提升了资源利用率和用户体验。
持久性与可用性:多重保障机制
DynamoDB通过写前日志、校验和及持续验证确保数据持久性。写前日志存储在三个副本并归档至S3,提供11个9的持久性。定期擦除过程检测静默数据错误,比对副本和归档日志。备份和恢复基于归档日志,不影响性能,支持时间点恢复。可用性方面,依赖快速故障检测和元数据服务MemDS,避免缓存失效引发的流量尖峰。这些措施共同支撑了DynamoDB的高可靠性与高可用性。
Q&A
DynamoDB的主要特点是什么?
DynamoDB是一个NoSQL云数据库服务,提供一致的性能、高可用性和完全托管的无服务器体验。
DynamoDB如何确保高可用性?
DynamoDB通过在多个数据中心或可用区复制数据来支持高可用性,并提供99.99%的可用性SLA。
DynamoDB是如何处理数据持久性的?
DynamoDB通过写前日志和数据校验机制确保数据持久性,并定期将日志归档到S3。
DynamoDB的多租户架构有什么优势?
多租户架构提高了资源利用率,降低了客户的成本,同时确保了工作负载隔离。
DynamoDB如何处理请求流?
DynamoDB通过请求路由服务和多个微服务来处理请求,确保请求有效路由到存储节点。
DynamoDB的灵活性体现在什么方面?
DynamoDB允许开发者使用不同的数据模型,没有固定的模式,每个数据项可以包含任意数量的属性。