Java Hazelcast异步客户端-检查';客户端已连接';状态

Java Hazelcast异步客户端-检查';客户端已连接';状态,java,hazelcast,Java,Hazelcast,我需要检查Hazelcast客户端是否连接到集群 我试图这样做的方式 ClientConfig clientConfig = new XmlClientConfigBuilder(xmlConfigurationFileName).build(); ClientStateListener clientStateListener = new ClientStateListener(clientConfig); HazelcastInstance client = HazelcastClient.

我需要检查Hazelcast客户端是否连接到集群

我试图这样做的方式

ClientConfig clientConfig = new XmlClientConfigBuilder(xmlConfigurationFileName).build();

ClientStateListener clientStateListener = new ClientStateListener(clientConfig);
HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);

final boolean connected = clientStateListener.isConnected();
final boolean started = clientStateListener.isStarted();
isStarted方法返回true,但isConnected始终为false。在我放置的断开连接检查和从服务器集群获取数据之间,确保客户端已连接(我也可以在日志中看到这一点)-当我将asynchronous设置为false(async start=“false”)时,则断开连接返回true

LifecycleServiceImpl Hazelcast类在fireLifecycleEvent方法(状态更改时以HZ调用)中包含此类代码

executor.execute(new Runnable() {
    @Override
    public void run() {
        for (LifecycleListener lifecycleListener : lifecycleListeners.values()) {
            lifecycleListener.stateChanged(lifecycleEvent);
        }
    }
});
在同步模式下,每次调用run(两次启动->启动和启动->客户端连接)。在异步模式下,只有一次(启动->启动)

Hazelcast版本3.12.1

这是整个配置(通过tcp ip的服务器发现策略)


黑泽尔卡斯特集团
XXXXXXXXXXXXXX:XXXXX
XXXXXXXXXXXXXX:XXXXX
XXXXXXXXXXXXXX:XXXXX
XXXXXXXXXXXXXX:XXXXX
2000
60000
3.
假的
0.5

如何强制更改客户端连接状态?

Hazelcast客户端运行的所有日志:

Jul 02, 2019 2:00:42 PM com.hazelcast.client.HazelcastClient
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] A non-empty group password is configured for the Hazelcast client. Starting with Hazelcast version 3.11, clients with the same group name, but with different group passwords (that do not use authentication) will be accepted to a cluster. The group password configuration will be removed completely in a future release.
Jul 02, 2019 2:00:43 PM com.hazelcast.client.spi.ClientInvocationService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Running with 2 response threads, dynamic=false
Jul 02, 2019 2:00:43 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTING
Jul 02, 2019 2:00:43 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTED
Jul 02, 2019 2:00:44 PM com.hazelcast.internal.diagnostics.Diagnostics
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Trying to connect to cluster with name: hazelcast-cache-group
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Trying to connect to [FFFFFFFFF]:PORTXXXX as owner member
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Setting ClientConnection{alive=true, connectionId=1, channel=NioChannel{/CLIENT-IP:58235->FFFFFFFFF/IPFFF:PORTXXXX}, remoteEndpoint=[FFFFFFFFF]:PORTXXXX, lastReadTime=2019-07-02 14:00:44.898, lastWriteTime=2019-07-02 14:00:44.711, closedTime=never, connected server version=3.12.1} as owner with principal ClientPrincipal{uuid='8090fecb-294f-4a4a-9da7-168bf0a7faff', ownerUuid='TOKEN-FFFFFFFFF'}
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [FFFFFFFFF]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58235
Jul 02, 2019 2:00:45 PM com.hazelcast.client.spi.impl.ClientMembershipListener
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] 

Members [6] {
    Member [AAAAAAAAA]:PORTXXXX - TOKEN-AAAAAAAAA
    Member [BBBBBBBBB]:PORTXXXX - TOKEN-BBBBBBBBB
    Member [CCCCCCCCC]:PORTXXXX - TOKEN-CCCCCCCCC
    Member [DDDDDDDDD]:PORTXXXX - TOKEN-DDDDDDDDD
    Member [EEEEEEEEE]:PORTXXXX - TOKEN-EEEEEEEEE
    Member [FFFFFFFFF]:PORTXXXX - TOKEN-FFFFFFFFF
}

Jul 02, 2019 2:00:45 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is CLIENT_CONNECTED
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [AAAAAAAAA]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58238
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [BBBBBBBBB]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58236
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [CCCCCCCCC]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58237
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [EEEEEEEEE]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58240
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [DDDDDDDDD]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58239

为了使客户端对象处于连接状态,需要将客户端连接策略设置为
sync
。否则,
HazelcastClient=HazelcastClient.newHazelcastClient(clientConfig)
将执行非阻塞,因此,为您提供一个尚未连接到群集的客户端对象。您可以共享日志吗?在您看到日志客户端\u已连接后,状态侦听器应将true返回给isConnected方法调用。确保您为事件交付提供了足够的时间,这通常是非常快的(只是不要立即关闭客户端,以便状态不会立即更改)。您可以在客户端连接后进行睡眠,并检查侦听器状态是否已连接。我可以在日志中查看客户端连接的信息。它是连接的,因为我添加了executor,它已计划检查是否已连接,并尝试从集群中放置和获取数据-无论经过多少时间,isConnected始终为“false”,但数据始终正确放置和获取。这只是断开连接的方法的无效状态的问题@Ozan Kılıç-对不起,你错了-客户错了connected@ishan德米尔-我会和你分享日志
Jul 02, 2019 2:00:42 PM com.hazelcast.client.HazelcastClient
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] A non-empty group password is configured for the Hazelcast client. Starting with Hazelcast version 3.11, clients with the same group name, but with different group passwords (that do not use authentication) will be accepted to a cluster. The group password configuration will be removed completely in a future release.
Jul 02, 2019 2:00:43 PM com.hazelcast.client.spi.ClientInvocationService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Running with 2 response threads, dynamic=false
Jul 02, 2019 2:00:43 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTING
Jul 02, 2019 2:00:43 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTED
Jul 02, 2019 2:00:44 PM com.hazelcast.internal.diagnostics.Diagnostics
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Trying to connect to cluster with name: hazelcast-cache-group
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Trying to connect to [FFFFFFFFF]:PORTXXXX as owner member
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Setting ClientConnection{alive=true, connectionId=1, channel=NioChannel{/CLIENT-IP:58235->FFFFFFFFF/IPFFF:PORTXXXX}, remoteEndpoint=[FFFFFFFFF]:PORTXXXX, lastReadTime=2019-07-02 14:00:44.898, lastWriteTime=2019-07-02 14:00:44.711, closedTime=never, connected server version=3.12.1} as owner with principal ClientPrincipal{uuid='8090fecb-294f-4a4a-9da7-168bf0a7faff', ownerUuid='TOKEN-FFFFFFFFF'}
Jul 02, 2019 2:00:44 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [FFFFFFFFF]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58235
Jul 02, 2019 2:00:45 PM com.hazelcast.client.spi.impl.ClientMembershipListener
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] 

Members [6] {
    Member [AAAAAAAAA]:PORTXXXX - TOKEN-AAAAAAAAA
    Member [BBBBBBBBB]:PORTXXXX - TOKEN-BBBBBBBBB
    Member [CCCCCCCCC]:PORTXXXX - TOKEN-CCCCCCCCC
    Member [DDDDDDDDD]:PORTXXXX - TOKEN-DDDDDDDDD
    Member [EEEEEEEEE]:PORTXXXX - TOKEN-EEEEEEEEE
    Member [FFFFFFFFF]:PORTXXXX - TOKEN-FFFFFFFFF
}

Jul 02, 2019 2:00:45 PM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is CLIENT_CONNECTED
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [AAAAAAAAA]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58238
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [BBBBBBBBB]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58236
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [CCCCCCCCC]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58237
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [EEEEEEEEE]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58240
Jul 02, 2019 2:00:45 PM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelcast-cache-group] [3.12.1] Authenticated with server [DDDDDDDDD]:PORTXXXX, server version:3.12.1 Local address: /CLIENT-IP:58239