如何获得Hazelcast地图配置



我正在尝试创建一个API来获取Hazelcast映射配置。但当我尝试使用时

hazelcastInstance.getConfig().getMapConfig("MAP");

我收到一个错误

java.lang.UnsupportedOperationException: Client config object only supports adding new data structure configurations

有什么变通方法可以获得配置吗?

作为一种解决方法,您可以使用管理中心的半内部API(注意:不保证向后兼容(来获取特定成员的成员配置,然后您可以对其进行解析并提取所需的详细信息。

示例:

HazelcastClientInstanceImpl client = ((HazelcastClientProxy) HazelcastClient.newHazelcastClient()).client;
client.getMap("myMap").put(1, 2);
Member aMember = client.getCluster().getMembers().iterator().next();
ClientInvocation invocation = new ClientInvocation(
client, // of type HazelcastClientInstanceImpl
MCGetMemberConfigCodec.encodeRequest(),
null,
aMember.getUuid()
);
String config = new ClientDelegatingFuture<String>(
invocation.invoke(),
client.getSerializationService(),
clientMessage -> MCGetMemberConfigCodec.decodeResponse(clientMessage).configXml
).get();
MapConfig mapConfig = new XmlConfigBuilder(new ByteArrayInputStream(config.getBytes(StandardCharsets.UTF_8))).build().getMapConfig("myMap");