У меня есть кластер Redis (3 главных и 3 подчиненных) , работающий внутри кластера Kubernetes . Кластер предоставляется через Kubenetes-Service (Kube-Service) .
У меня есть сервер приложений, подключенный к Redis Cluster (используя Kube-Service как URI) через клиент Lettuce java для Redis. У меня также есть следующие параметры клиента, установленные для объекта подключения Lettuce:
ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enablePeriodicRefresh(Duration.ofMinutes(10))
.enableAllAdaptiveRefreshTriggers()
.build();
ClusterClientOptions clusterClientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(topologyRefreshOptions)
.autoReconnect(true)
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
.build();
redisClient.setOptions(clusterClientOptions);
Теперь, когда я тестирую эту настройку, убивая (pods) моего мастера Redis, Kubernetes выполняет свою работу. путем перепланирования нового модуля. Но у нового модуля новый IP-адрес, и салат-латук его никогда не обнаруживает. Как салат справляется с повторным открытием? Похоже, что logi c выше для топологии refre sh больше не выполняет поиск DNS для новых IP-адресов.
Есть ли какие-нибудь образцы или кто-то, кто с этим справлялся. Я прочитал несколько выпусков Github о самом салате, которые не дают четкого представления о том, как с этим справляться.
Лучшее