使用Apache骆驼蓝图的Hazelcast缓存实现

我正在尝试使用Camel蓝图实现Hazelcast缓存。但是我无法完成,我能够通过Java代码(而不是通过hazelcast XML配置文件)创建hazelcast实例。已创建实例,但是在实例创建期间未调用缓存加载器类(即使初始化方法为EAGER)。附加了一些代码片段。


让我知道,如果有人遇到这个问题。


代码:


Hazelcast配置

public class ConfigHack extends Config {


public ConfigHack(String instanceName ){

    super(instanceName);

    System.out.println("Going to create Hazelcast instance 

................"+instanceName);


    TcpIpConfig tcpIpConfig = new TcpIpConfig();

    List membersList = new ArrayList<String>();

    membersList.add("localhost");

    tcpIpConfig.setMembers(membersList);


    MulticastConfig multicastConfig = new MulticastConfig();

    multicastConfig.setEnabled(true);


    JoinConfig join = new JoinConfig();

    join.setTcpIpConfig(tcpIpConfig);

    join.setMulticastConfig(multicastConfig);


    NetworkConfig networkConfig =  new NetworkConfig();

    networkConfig.setPort(5701);

    networkConfig.setPortAutoIncrement(true);

    networkConfig.setJoin(join);


    GroupConfig groupConfig = new GroupConfig();

    groupConfig.setName("devuser");

    groupConfig.setPassword("devpassword"); 


    MapStoreConfig mapStoreConfig = new MapStoreConfig();

    //Absolute path in class name field below

    mapStoreConfig.setClassName("VehicleCacheLoader");

    mapStoreConfig.setImplementation(new VehicleCacheLoader());

    mapStoreConfig.setEnabled(true);

    mapStoreConfig.setInitialLoadMode(InitialLoadMode.EAGER);

    mapStoreConfig.setWriteDelaySeconds(500);


    MapConfig mapConfig = new MapConfig();

    mapConfig.setName("vehicleMap");

    mapConfig.setBackupCount(2);

    mapConfig.setMaxIdleSeconds(1000000);

    mapConfig.setEvictionPercentage(30);

    mapConfig.setEvictionPolicy(EvictionPolicy.LFU);

    mapConfig.setMapStoreConfig(mapStoreConfig);


    Map<String,MapConfig> mapConfigs = new HashMap<String,MapConfig>();

    mapConfigs.put("vehicleMap", mapConfig);


    //config.setMapConfigs(mapConfigs);

    addMapConfig(mapConfig);

    setGroupConfig(groupConfig);

    setNetworkConfig(networkConfig);        

}

}


慕勒3428872
浏览 140回答 1
1回答

元芳怎么了

线mapConfigs.put("vehicleMap",&nbsp;mapConfig);定义将用于名称与“&nbsp;vehicaleMap”匹配的地图的配置。为了创建这样的地图,您需要对其进行操作,例如hazelcastInstance.getMap("vehicleMap");如果配置为:mapConfigs.put("vehicleMap*",&nbsp;mapConfig);当您创建名为“&nbsp;vehicleMap1”或“&nbsp;vehicleMap123”的地图时,将使用此名称。该配置定义了将在需要时使用的配置。直到您第一次访问地图(创建地图时)才需要。此处的“&nbsp;EAGER&nbsp;”是指地图加载器的运行方式,而不是指地图的创建方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java