我正在使用 hazelcast 版本 5.1.5,当我在方法之上使用 spring @Cacheable("cache_name") 时,当我调用方法时,会抛出异常。
java.lang.IllegalArgumentException:无法找到名为“cache_name”的缓存生成器[public java.util.List com.danial.user.management.service.UserService.getAllEntities2()]键=''|密钥生成器='' |缓存管理器='' |缓存解析器='' |条件='' |除非=''|同步='假';
这是我的 hazelcast 配置:
@Configuration
public class HazelcastConfig implements Serializable {
@Value("${spring.application.name}")
private String appName;
@Bean
public Config CacheConfig() {
Config config = new Config();
config.setInstanceName("hazelcast_mwga_cluster");
config.getNetworkConfig().getJoin().getTcpIpConfig()
.addMember("172.16.20.113")
.setEnabled(true);
// Configure a Hazelcast instance for each map.
config.addMapConfig(createMapConfig("cache_name"));
return config;
}
@Bean
public HazelcastInstance hazelcastInstance() throws IllegalAccessException {
return HazelcastClient.newHazelcastClient(createClientConfig());
}
private ClientConfig createClientConfig() throws IllegalAccessException {
ClientConfig clientConfig = new ClientConfig();
clientConfig.setClusterName("hazelcast_mwga_cluster");
clientConfig.setInstanceName("hazelcast_mwga_cluster");
clientConfig.addNearCacheConfig(createNearCacheConfig());
return clientConfig;
}
private NearCacheConfig createNearCacheConfig() {
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setInvalidateOnChange(true);
nearCacheConfig.setInMemoryFormat(InMemoryFormat.OBJECT);
return nearCacheConfig;
}
private MapConfig createMapConfig(String name) {
MapConfig mapConfig = new MapConfig(name);
//do the special config here
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setInMemoryFormat(InMemoryFormat.OBJECT);
nearCacheConfig.setInvalidateOnChange(true);
nearCacheConfig.setEvictionConfig(new EvictionConfig());
mapConfig.setNearCacheConfig(nearCacheConfig);
return mapConfig;
}
}