gpt4 book ai didi

java - AWS 多区域 ElastiCache 同步

转载 作者:行者123 更新时间:2023-11-30 06:47:43 26 4
gpt4 key购买 nike

需要有关以下 AWS 特定用例的最佳实践的信息,

  1. 我们的 Java 网络应用部署在 us-east-1 和 us-west-2 区域。
  2. 它与 Dynamo DB 通信,基于 Memcached 的 ElastiCache 位于两个区域的 Dynamo DB 之上。
  3. 我们在 us-east-1 和 us-west-2 之间启用了 Dynamo DB 复制。
  4. Route 53 将 API 调用定向到适当的区域。

现在,问题是当我们在 Dynamo DB 中创建或更新记录时,它会插入到 Dynamo DB 中并缓存在该特定区域中。记录也被复制到 Dynamo DB 的其他区域,但缓存不会保持同步,因为 ElastiCache 之间没有复制。

我们如何以最佳方式解决这个问题?

最佳答案

DAX 不是这里的答案。我很惊讶没有人指出这一点。
Ivan 在这方面的看法是错误的。

DAX 确实是读写缓存,但它不会捕获通过直接访问 DynamoDB 发生的数据更改(很明显),也不会捕获通过“其他”DAX 集群发生的数据更改。

所以在这种情况下,
你有 2 个 DAX 集群,一个在 west-1,一个在 east-1,这两个集群是完全独立的。因此,如果您通过 DAX 在 west-1 上进行数据更改,则该更改会在 DynamoDB 表级别而不是缓存 (DAX) 级别传播到 east-1换句话说,如果您更新从两个区域访问过的记录(而不是缓存在两个 DAX 集群中),您仍然会遇到同样的问题。

从根本上说,这是跨区域同步缓存层的问题,这很难。如果你真的需要它,有一些方法可以通过制作你自己的 Kafka 或 Kinesis 流来保持缓存条目的变化并被多区域的缓存集群使用。现在单独使用 elasticache 是不可能的。 (但如果您仅为此任务设置 lambda 或 EC2 是可能的)结帐case studies from Netflix

关于java - AWS 多区域 ElastiCache 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com