DynamoDB单主跨区域复制



我试图理解DynamoDB复制&故障转移策略,但在网上找不到任何澄清它们的文章。我理解跨区域复制可以通过DynamoDB与全局表实现,但我也理解这是一个多活动表设置,这意味着有多个活动表和多个复制表。是否存在单活动表和多个副本的设置?我在本文中简要地阅读了这一点,但在包括AWS文档在内的其他任何地方都没有找到任何提及。

我也试图了解这两种情况的故障转移策略-是否有一个DynamoDB Java客户端,可以跨AZ进行故障转移,如果一个AZ中两个读取&;写吗?

DynamoDB Global Tables始终是active-active的,但如果您愿意,也可以将其视为active-passive。很多人都这样。如果您想使用条件表达式、事务之类的特性,或者在两个区域大约在同一时间写入相同的项,并且第二次写入发生在第一次复制之前的任何非幂等性操作,这将非常有用,因为这将导致第一次写入有效丢失。

要做到这一点,您只需将写入流量路由到一个区域,并在故障转移时决定何时写入另一个区域。如果您允许,故障转移区域总是乐意成为活动区域。

至于可用分区,DynamoDB是一个区域服务,这意味着它总是跨越至少3个可用分区,并且即使整个可用分区宕机也能保持正常运行。你不必担心那个。

是否存在单活动表和多个副本的设置

不幸的是,在dynamodb中使用全局表的跨区域没有这样的单活动和多个副本设置,因此故障转移策略将适用于多个活动表和多个副本表!-文档

故障转移策略

根据docs

如果单个AWS区域被隔离或降级,您的应用程序可以重定向到另一个区域,并对不同的复制表执行读写操作。

这意味着这是一个无缝平滑的过程,默认情况下发生,当然你可以在重定向

时添加自定义逻辑。

最新更新