为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2021-05-21 19:19:04
我正在尝试使用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);        }}
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

线

mapConfigs.put("vehicleMap", mapConfig);

定义将用于名称与“ vehicaleMap”匹配的地图的配置。

为了创建这样的地图,您需要对其进行操作,例如

hazelcastInstance.getMap("vehicleMap");

如果配置为:

mapConfigs.put("vehicleMap*", mapConfig);

当您创建名为“ vehicleMap1”或“ vehicleMap123”的地图时,将使用此名称。

该配置定义了将在需要时使用的配置。直到您第一次访问地图(创建地图时)才需要。

此处的“ EAGER ”是指地图加载器的运行方式,而不是指地图的创建方式。


查看完整回答
反对 回复 2021-05-26
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信