gpt4 book ai didi

redis - 使用 ElastiCache Redis 上的单个复制组进行故障转移

转载 作者:可可西里 更新时间:2023-11-01 11:38:34 29 4
gpt4 key购买 nike

我正在使用以下规范测试由 Redis 支持的 ElastiCache:

  • 使用 Redis 2.8,带多可用区
  • 单一复制组
  • 1个主节点在us-east-1b,1个从节点在us-east-1c,1个从节点在us-east-1d
  • 应用程序编写的部分是直接使用主节点的端点 (primary-node.use1.cache.amazonaws.com)
  • 应用程序中仅执行读取操作的部分指向在 HAProxy 中配置的自定义端点 (readonly.redis.mydomain.com),然后指向另外两个读取从属端点。 (readslave1.use1.cache.amazonaws.com 和 readslave2.use1.cache.amazonaws.com)

现在假设主节点 (master) 在 us-east-1b 中发生故障。

据我所知,如果主实例失败,我不必更改写入 Redis 的终点 url (primary-node.use1.cache.amazonaws.com),尽管从那里,我还有以下问题:

  • 我是否必须更改只读从站的端点名称?
  • 失踪的奴隶被添加到池中需要多长时间?

如果还有什么我遗漏的,我会很感激你的建议/信息。

谢谢!

最佳答案

如果您正在使用 ElastiCache,您应该使用 AWS 提供的“Primary EndpointThe”。

该端点实际上由 Route53 支持,如果主要(主)redis 出现故障,因为您启用了 MutliA-Z,它将自动故障转移到只读副本(从属)之一。在这种情况下,您不需要修改您的 redis 端点。

我不知道你为什么要这样设计,好像你只想写master,但总是从slave读取。对于 HA 代理部分,您应该包括对所有 3 个 redis 节点的 TCP 检查,使用它们的“读取端点”在 haproxy 中,您可以检查端点是否为 SLAVE,如果是,您的 haproxy 应将流量重定向到该端点。

请注意,在应用层,如果您的 redis 驱动程序不支持自动重连,您的脚本将无法连接到新的主节点。

除了“自动重新连接”之外,由于 AWS 使用 Route53 DNS 进行故障转移,一些库将不会再次进行 NS 查找,这意味着 DNS 仍指向旧 ip,即旧主机。

使用HAproxy可以解决这个问题。

关于redis - 使用 ElastiCache Redis 上的单个复制组进行故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447528/

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