Lettuce拓扑刷新问题

发布于 2022-01-07 19:47:43 字数 638 浏览 865 评论 3

@ankeway 你好,想跟你请教个问题:

大神,可否帮我分析一下

我同时开启了lettuce的拓扑周期刷新和自适应刷新,发现虽然当某个master节点宕机后,客户端保存的集群拓扑信息能刷新,后台对redis的操作也正常,但是,发现lettuce还是一直在重连宕机的master,后台还是一直在刷无法重连的警告日志。

而我使用jedis测试时,基本上是无感操作,只要redis集群可用,jedis基本上不会有任何错误日志。相比而言,jedis比lettuce似乎处理的更好。

还有我想问下,lettuce的周期刷新和自适应刷新是否需要同时开启,或者只开启自适应刷新就够了。

开启周期刷新,虽然能保证客户端存储的拓扑信息是最新的,但是,是否有必要额外的开一个定时器去一直刷新,毕竟,redis拓扑信息发生改变时只在出错的时候或其他少数情况,在大多数情况下,频繁的刷新也是无意义的。

我也想过两种策略同时开启,只不过调慢周期刷新的时间,但是,这样做的意义似乎不大,毕竟如果需要保证客户端存储的信息是最新的,那么刷新间隔就不能太大,太短的话,也是对资源的一种消耗

求大神帮我分析一下

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

毁梦 2022-01-07 22:50:25

嗯嗯,多谢!

爱的故事 2022-01-07 22:43:20

回复
@雪初寒 : 看过源码,开启自适应刷新就够了,只有用到ReadFrom.NEAREST模式的时候开启定时刷新,Lettuce会选择延迟最低的节点读取

彩扇题诗 2022-01-07 20:31:43

首先我觉得你可以看你是否对这种感知比较敏感,如果影响不大,完全不用考虑,而且用jedis即可,既然使用到了Redis集群,应该对这块感知比较敏感,也希望能够尽快恢复使用,而且没有放弃lettuce,那么一个定时器的资源消耗,也就不用纠结了,报错也是正常的,节点没有恢复,会有报错的,Cluster各节点探测挂掉节点的时间大概是15秒默认时间,所以至少要有15秒的Redis处于不可用状态,再加上刷新时间的差值,能够快速恢复客户端的使用这样的配置还是很值得的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文