gpt4 book ai didi

java - 服务器重启后如何将 HazelcastClient 重新连接到 HazelcastServer

转载 作者:行者123 更新时间:2023-11-29 08:31:15 25 4
gpt4 key购买 nike

我在基于微服务和 springboot 的架构中使用 hazelcast 时遇到问题。我将其中一个应用程序保留为将成为 hazelcast 服务器的应用程序,而其他应用程序则是其客户端。但是,如果我必须更新作为 hazelcast 服务器的应用程序,缓存的客户端应用程序会覆盖与服务器的连接,并且当我启动新版本的服务器时,这些客户端应用程序不会重新连接。是否有任何关闭设置 hazelcastclient 在服务器上进行池化以尝试在它回来后立即重新连接?我的客户如下:

    @bean    open fun hazelcastInstance(): HazelcastInstance? {    return try {    val clientConfig = ClientConfig()    HazelcastClient.newHazelcastClient(clientConfig)    } catch (e: Exception) {    log.error("Could not connect to hazelcast server, server up without cache")    null    }}

如果我的服务器出现故障,我会收到“com.hazelcast.client.HazelcastClientNotActiveException:客户端已关闭”。

如果你能帮助我,我将不胜感激

最佳答案

连接尝试限制和连接尝试周期配置元素有助于配置客户端的重新连接行为。客户端将重试 ClientNetworkConfig.connectionAttemptLimit 次以重新连接到集群。 Connection Attempt Period 是由 ClientNetworkConfig.connectionAttemptLimit 定义的连接尝试之间的持续时间(以毫秒为单位)。以下是如何配置它们的示例:

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

从 Hazelcast 3.9 开始,您可以使用配置元素 reconnect-mode 来配置客户端在断开连接后如何重新连接到集群。它具有三个选项(OFFONASYNC)。选项 OFF 禁用重新连接。 ON 以阻塞方式启用重新连接,所有等待的调用都将被阻塞,直到集群连接建立或失败。选项 ASYNC 以非阻塞方式启用重新连接,所有等待调用都将收到 HazelcastClientOfflineException。它的默认值为 ON。您可以在下面看到一个配置示例:

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

关于java - 服务器重启后如何将 HazelcastClient 重新连接到 HazelcastServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com