Как подключить HazelcastClient к HazelcastServer после перезагрузки сервера

У меня возникла проблема с использованием hazelcast в архитектуре, основанной на микросервисе и пружинной платформе. Я поддерживаю одно из приложений как приложение, которое будет сервером hazelcast, а остальные – это клиенты. Однако, если мне нужно обновить приложение, являющееся сервером hazelcast, клиентские приложения кеша опрокидывают соединение с сервером, и когда я создаю новую версию сервера, эти клиентские приложения не будут повторно подключаться. Есть ли какие-либо проблемы с настройкой hazelcastclient для объединения на сервере, чтобы попытаться снова подключиться, как только он вернется? Мой клиент выглядит следующим образом:


     @bean
     open fun hazelcastInstance (): HazelcastInstance?  {
     return try {
     val clientConfig = ClientConfig ()
     HazelcastClient.newHazelcastClient (clientConfig)
     } catch (e: Исключение) {
     log.error («Не удалось подключиться к серверу hazelcast, сервер без кеша»)
     ноль
     }

 }

и я получаю «com.hazelcast.client.HazelcastClientNotActiveException: клиент выключается», если мой сервер не работает.

Я благодарен, если вы могли бы мне помочь

Пункты конфигурации ограничения доступа к подключению и времени подключения помогают настраивать поведение повторного подключения клиентов. Клиент будет повторять попытку повторного подключения к кластеру ClientNetworkConfig.connectionAttemptLimit раз, сколько ClientNetworkConfig.connectionAttemptLimit . Период попыток подключения – это продолжительность в миллисекундах между попытками подключения, определенными ClientNetworkConfig.connectionAttemptLimit . Вот пример того, как вы их настраиваете:

 ClientConfig clientConfig = new ClientConfig(); clientConfig.getNetworkConfig().setConnectionAttemptLimit(5); clientConfig.getNetworkConfig().setConnectionAttemptPeriod(5000); 

Начиная с Hazelcast 3.9, вы можете использовать reconnect-mode элемента конфигурации, чтобы настроить, как клиент будет повторно подключаться к кластеру после отключения. Он имеет три варианта ( OFF , ON или ASYNC ). Опция OFF отключает повторное подключение. ON разрешает пересоединение блокирующим образом, при котором все ожидающие вызовы будут заблокированы до тех пор, пока соединение кластера не будет установлено или не будет выполнено. Опция ASYNC позволяет пересоединение неблокирующим образом, при котором все ожидающие вызовы получат HazelcastClientOfflineException . Значение по умолчанию ON . Ниже приведен пример конфигурации:

 ClientConfig clientConfig = new ClientConfig(); clientConfig.getConnectionStrategyConfig() .setReconnectMode(ClientConnectionStrategyConfig.ReconnectMode.ON); 

Большое спасибо, он решает мою проблему.