Hazelcast客户端实例的唯一名称
我有3个节点的hazelcast服务器集群,每个节点都启动了hazelcast客户端。hazelcast客户端使用智能路由,并使用客户端/服务器模式 我收集通过IExecutorService和ClientService.getConnectedClients()连接到Hazelcast服务器群集的客户端列表,这些客户端位于每个Hazelcast客户端中。在获取列表后,我想循环访问客户端的获取列表,并将其与自己的实例(获取列表的客户端)进行比较,如果找到,则执行一些应用程序逻辑。一种方法是在HazelcastClient.newHazelcastClient期间为客户端分配一个唯一的名称 是否可以为每个Hazelcast客户端实例设置唯一的名称 如果我不清楚,请告诉我 谢谢Hazelcast客户端实例的唯一名称,hazelcast,Hazelcast,我有3个节点的hazelcast服务器集群,每个节点都启动了hazelcast客户端。hazelcast客户端使用智能路由,并使用客户端/服务器模式 我收集通过IExecutorService和ClientService.getConnectedClients()连接到Hazelcast服务器群集的客户端列表,这些客户端位于每个Hazelcast客户端中。在获取列表后,我想循环访问客户端的获取列表,并将其与自己的实例(获取列表的客户端)进行比较,如果找到,则执行一些应用程序逻辑。一种方法是在Ha
JK您可以按如下方式唯一地识别hazelcast客户端
HazelcastInstance clientInstance = HazelcastClient.newHazelcastClient(clientConfig);
String localUUID = clientInstance.getLocalEndpoint().getUuid();
System.out.println("Client UUID is : " + localUUIID);
在下一步中,使用ExecutorService
-->ClientService.getConnectedClients
检索已连接的客户端列表,然后按如下所示迭代该列表
for(com.hazelcast.core.Client client : clients)
{
if(localUUID.equals(client.getUuid()))
{
System.out.println("Found : " + client.getUuid());
// perform your logic here...
break;
}
}
好了 如果您可以等到Hazelcast 3.6 有
public void setInstanceName(String instanceName)
发现存在唯一的id生成器,但它返回long。请尝试下面给出的代码,并告诉我是否有用。instanceName将由hazelcast设置,还是调用代码必须设置它?从外观上看,我认为调用者必须这样做。如果不在配置构建中提供一个值,Hazelcast将像当前一样创建一个值。HazelcastClient.newHazelcastClient(clientConfig)。getName()
到目前为止不是唯一的。在这种情况下怎么用呢?对不起,迪内什。我错过了您的回复,我们使用客户端的IP地址作为唯一标识进行处理。如果IP地址不会改变,那么这也是一个可行的解决方案。