生菜群集中的故障转移

时间:2019-10-17 08:48:47

标签: java redis lettuce

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

我尝试设置定期的拓扑刷新以及对所有事件进行自适应的刷新,但这无济于事。我还需要使用其他设置吗?

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

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

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。

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