有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有类似于ClientConfig的东西。Hazelcast 4.2中的SetConnectionAttentileLimit()?

我有一个场景,我想用Java实例化一个Hazelcast客户机,如果Hazelcast客户机无法连接到它的集群,它应该被关闭,并且应该有一个后备代码。因此,让我们假设Hazelcast客户是一种应该拥有的,但不是必须拥有的

在版本3中。在Hazelcast的x中,我有机会在Hazelcast 4.2中调用HazelcastClientConfig.setConnectionAttemptLimit(1);,我不知道如何建立相同的场景。没有方法ClientConfig.setConnectionAttemptLimit(...);或类似的东西

有人知道如何将初始连接尝试设置为1吗

我可能可以实现如下代码:

// ...

    ClientConfig clientConfig = new ClientConfig();
    
    clientConfig.getNetworkConfig().addAddress(String.format("%s:%s", hazelcastServerHost, hazelcastServerPort));
    
    clientConfig.getConnectionStrategyConfig().setAsyncStart(true);
    
        // The following code  is a really dirty solution in case that HC client cannot connect to it's cluster.
        // Only works with clientConfig.getConnectionStrategyConfig().setAsyncStart(true);
        
        try {
            Thread.sleep(5000); // Let's assume that a HC instance should probably be connected in 5 seconds.
        } catch (InterruptedException e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
        
        try {
            hcClient.getMap("DUMMY"); // perform a dummy access in order to receive a HazelcastClientOfflineException if the client is not connected.
        } catch (HazelcastClientOfflineException e){
            hcClient.shutdown();
        }
        
        return hcClient;

但我觉得这比脏的多


共 (1) 个答案

  1. # 1 楼答案

    https://docs.hazelcast.com/imdg/4.2/migration-guides#changes-in-client-connection-retry-mechanism

    已删除连接尝试周期和连接尝试限制配置。相反,连接的元素会重试

    要实现与之前相同的目标,可以执行以下操作:

    ClientConfig config = new ClientConfig();
    ClientConnectionStrategyConfig connectionStrategyConfig = 
    config.getConnectionStrategyConfig()
          .getConnectionRetryConfig()
          .setClusterConnectTimeoutMillis(5000);
    

    使用此设置,如果客户机在5秒内无法连接到群集,它将关闭,与使用connection-attempt-limitconnection-attempt-period的旧设置类似。有关详细信息,请参阅以下链接 https://docs.hazelcast.com/imdg/4.2/clients/java#configuring-client-connection-retry