Ren*_*cia 2 java caching hazelcast kotlin microservices
我在基于微服务和 springboot 的架构中使用 hazelcast 时遇到问题。我将其中一个应用程序保留为将成为 hazelcast 服务器的应用程序,而其他应用程序则是该应用程序的客户端。但是,如果我必须更新作为hazelcast 服务器的应用程序,缓存的客户端应用程序会推翻与服务器的连接,并且当我启动新版本的服务器时,这些客户端应用程序不会重新连接。是否有任何设置 hazelcastclient 在服务器上进行池化以尝试在返回后立即重新连接?我的客户是这样的:
@豆角,扁豆
打开乐趣 hazelcastInstance(): HazelcastInstance? {
返回尝试{
val clientConfig = ClientConfig()
HazelcastClient.newHazelcastClient(clientConfig)
} catch (e: 异常) {
log.error("无法连接到hazelcast服务器,服务器没有缓存")
空值
}
}
如果我的服务器出现故障,我会收到“com.hazelcast.client.HazelcastClientNotActiveException: Client is shutdown”。
如果你能帮助我,我很感激
小智 5
Connection Attempt Limit 和 Connection Attempt Period 配置元素有助于配置客户端的重新连接行为。客户端将ClientNetworkConfig.connectionAttemptLimit多次重试以重新连接到集群。Connection Attempt Period 是由 定义的连接尝试之间的持续时间(以毫秒为单位)ClientNetworkConfig.connectionAttemptLimit。以下是如何配置它们的示例:
ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().setConnectionAttemptLimit(5);
clientConfig.getNetworkConfig().setConnectionAttemptPeriod(5000);
Run Code Online (Sandbox Code Playgroud)
从 Hazelcast 3.9 开始,您可以使用配置元素reconnect-mode来配置客户端在断开连接后如何重新连接到集群。它有三个选项(OFF,ON或ASYNC)。该选项OFF禁用重新连接。ON以阻塞方式启用重新连接,所有等待的调用都将被阻塞,直到集群连接建立或失败。该选项ASYNC以非阻塞方式启用重新连接,其中所有等待调用都将收到HazelcastClientOfflineException. 其默认值为ON。您可以在下面看到一个配置示例:
ClientConfig clientConfig = new ClientConfig();
clientConfig.getConnectionStrategyConfig()
.setReconnectMode(ClientConnectionStrategyConfig.ReconnectMode.ON);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3513 次 |
| 最近记录: |