java - 集群中的生菜故障转移
问题描述
在旧的失败后,我试图让生菜连接到新提升的主人(前奴隶)。但是所有的写入都停止了。失败的主机重新连接后继续写入,现在作为从机。它继续写入新的主设备(前从设备)。
我尝试设置定期拓扑刷新,以及所有事件的自适应刷新,但它没有帮助。我必须使用其他设置吗?
这就是我配置客户端的方式:
final List<RedisURI> redisURIs = buildRedisURIs(redisServerSettings.getNodes());
final RedisClusterClient client = RedisClusterClient.create(clientResources, redisURIs);
final ClusterTopologyRefreshOptions refreshOptions =
ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers()
.adaptiveRefreshTriggersTimeout(Duration.ofMinutes(2))
.refreshTriggersReconnectAttempts(2)
.enablePeriodicRefresh(Duration.ofMinutes(10))
.build();
client.setOptions(ClusterClientOptions.builder().topologyRefreshOptions(refreshOptions).build());
解决方案
我解决了这个问题。
因为 lettuce 通常没有超时,所以它永远等待服务器的响应。设置超时导致一些事务失败,但在失败的事务之后,读取和写入继续。
推荐阅读
- c++ - C++中的箭头检测
- r - 如何使用带有 if 条件的 NA 替换日期列
- python - 如何在 Pandas DataFrame 中只保留最小值
- javascript - twitch api获取令牌返回“未知错误”Angular
- c# - 如何将 IMethodSymbol 转换为 MethodDeclarationSyntax?
- vue.js - Vue JS无线电输入“已检查”不适用于v-model
- mysql - 如果重复记录,是否可以进行 MySQL SELECT 查询来更改记录?
- javascript - 在 () -> fn 上传递对 onClick 的引用是否对性能有真正的影响?在反应
- matplotlib - 使用 matplotlib,有没有办法创建基本不等式的简单二维图
- python - 使用电子邮件收集功能制作基于 python 的网站,但在输入电子邮件时崩溃