Hazelcast用map.replace写在后面
替换某些地图项目时,MapStore(写后模式)似乎无法正常工作。 我希望已经被替换的地图项目不再被处理 我使用的是Hazelcast 3.2.5 我错过什么了吗 请参阅服务器测试类、客户端测试类和输出,以演示问题 服务器类:Hazelcast用map.replace写在后面,hazelcast,Hazelcast,替换某些地图项目时,MapStore(写后模式)似乎无法正常工作。 我希望已经被替换的地图项目不再被处理 我使用的是Hazelcast 3.2.5 我错过什么了吗 请参阅服务器测试类、客户端测试类和输出,以演示问题 服务器类: public class HazelcastInstanceTest { public static void main(String[] args) { Config cfg = new Config(); MapConfig mapCon
public class HazelcastInstanceTest {
public static void main(String[] args) {
Config cfg = new Config();
MapConfig mapConfig = new MapConfig();
MapStoreConfig mapStoreConfig = new MapStoreConfig();
mapStoreConfig.setEnabled(true);
mapStoreConfig.setClassName("com.test.TestMapStore");
mapStoreConfig.setWriteDelaySeconds(15);
mapConfig.setMapStoreConfig(mapStoreConfig);
mapConfig.setName("customers");
cfg.addMapConfig(mapConfig);
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
}
}
映射存储Impl类
public class TestMapStore implements MapStore {
@Override
public Object load(Object arg0) {
System.out.println("--> LOAD");
return null;
}
@Override
public Map loadAll(Collection arg0) {
System.out.println("--> LOAD ALL");
return null;
}
@Override
public Set loadAllKeys() {
System.out.println("--> LOAD ALL KEYS");
return null;
}
@Override
public void delete(Object arg0) {
System.out.println("--> DELETE");
}
@Override
public void deleteAll(Collection arg0) {
System.out.println("--> DELETE ALL");
}
@Override
public void store(Object arg0, Object arg1) {
System.out.println("--> STORE " + arg1.toString());
}
@Override
public void storeAll(Map arg0) {
System.out.println("--> STORE ALL");
}
}
客户端类
public class HazelcastClientTest {
public static void main(String[] args) throws Exception {
ClientConfig clientConfig = new ClientConfig();
HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
IMap mapCustomers = client.getMap("customers");
System.out.println("Map Size:" + mapCustomers.size());
mapCustomers.put(1, "Item A");
mapCustomers.replace(1, "Item B");
mapCustomers.replace(1, "Item C");
System.out.println("Map Size:" + mapCustomers.size());
}
}
客户端输出(正常):地图大小:0
地图大小:1
服务器输出(如我所想,这是不正常的。我只需要C项)
-->加载所有键
-->加载
-->存储项目A
-->存储所有
-->存储项目B
-->存储项目C
任何帮助都将不胜感激。
非常感谢您能在github上创建票证吗?大多数开发人员不经常检查stackoverflow;但他们正在检查github。好的,谢谢你的提示。我在github上开了一张票。