【发布时间】:2019-07-21 05:36:09
【问题描述】:
我们目前有一个使用 redis(AWS elasticache)的服务,有几个副本节点,集群模式被禁用。在这种情况下,我们如何实现从副本的只读和对主节点的读/写?
在 golang 中是否有相同的好的库?我可以找到几个库,但它们都是为启用集群模式而设计的。
【问题讨论】:
标签: amazon-web-services redis amazon-elasticache
我们目前有一个使用 redis(AWS elasticache)的服务,有几个副本节点,集群模式被禁用。在这种情况下,我们如何实现从副本的只读和对主节点的读/写?
在 golang 中是否有相同的好的库?我可以找到几个库,但它们都是为启用集群模式而设计的。
【问题讨论】:
标签: amazon-web-services redis amazon-elasticache
我们所做的是使用 route53 创建一个指向“主端点”的“写入”URL,如果出现问题,它将故障转移到当前的主节点。这样你就不必在你的应用程序中更新它。然后使用循环将所有节点放在“读取”URL 下。
您并不经常需要在同一个应用程序中访问读取(从副本)和写入,除非您执行大量读取和不频繁写入。然后就可以在代码中维护两个redis客户端实例了。不优雅,但有效。
如果您愿意,您可以使用加权循环法关闭当前主节点上的读取。只需注意何时发生故障转移事件即可对其进行更新。
将写入 URL 上的 TTL 设置为较低的值,例如 1 分钟或更短。
【讨论】: