我试图让生菜在旧的失败后连接到新升级的主(以前的从)。但是所有写操作都停止了。发生故障的主机重新连接后,现在作为从设备继续写入。并继续写入新的主服务器(以前的从服务器)。

我尝试设置定期的拓 flutter 刷新以及对所有事件进行自适应的刷新,但这没有帮助。我还有其他设置要使用吗?

这是我配置客户端的方式:

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());

最佳答案

我解决了问题。

由于生菜通常没有超时,因此它将永远等待服务器的响应。设置超时会导致某些事务失败,但是在失败的事务之后,读取和写入将继续。

关于java - 生菜群集中的故障转移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58428519/

10-11 04:44