我已经编译了一个GridGain专业版的docker镜像,并运行了这个。使用Java,我可以做以下事情……
创建以下@Configuration文件
@Configuration
@EnableCaching
public class CustomConfiguration extends CachingConfigurerSupport {
@Bean
@Override
public KeyGenerator keyGenerator() {
return (target, method, params) -> {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append(method.getName());
for (Object obj : params) {
sb.append("|");
sb.append(obj.toString());
}
return sb.toString();
};
}
@Bean("cacheManager")
public SpringCacheManager cacheManager(IgniteConfiguration igniteConfiguration){
try {
SpringCacheManager springCacheManager = new SpringCacheManager();
springCacheManager.setIgniteInstanceName("ignite");
springCacheManager.setConfiguration(igniteConfiguration);
springCacheManager.setDynamicCacheConfiguration(new CacheConfiguration<>().setCacheMode(CacheMode.REPLICATED));
return springCacheManager;
}
catch (Exception ex){
}
return null;
}
@Bean
@Profile("!dev")
IgniteConfiguration igniteConfiguration() {
GridGainConfiguration gridGainConfiguration = new GridGainConfiguration();
gridGainConfiguration.setRollingUpdatesEnabled(true);
IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
.setPluginConfigurations(gridGainConfiguration)
.setClientMode(true)
.setPeerClassLoadingEnabled(false)
.setIgniteInstanceName("MyIgnite");
DataStorageConfiguration dataStorageConfiguration = new DataStorageConfiguration();
DataRegionConfiguration dataRegionConfiguration = new DataRegionConfiguration();
dataRegionConfiguration.setInitialSize(20 * 1024 * 1024);
dataRegionConfiguration.setMaxSize(40 * 1024 * 1024);
dataRegionConfiguration.setMetricsEnabled(true);
dataStorageConfiguration.setDefaultDataRegionConfiguration(dataRegionConfiguration);
igniteConfiguration.setDataStorageConfiguration(dataStorageConfiguration);
TcpDiscoverySpi tcpDiscoverySpi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder tcpDiscoveryVmIpFinder = new TcpDiscoveryVmIpFinder();
tcpDiscoveryVmIpFinder.setAddresses(Arrays.asList("192.168.99.100:47500..47502"));
tcpDiscoverySpi.setIpFinder(tcpDiscoveryVmIpFinder);
igniteConfiguration.setDiscoverySpi(tcpDiscoverySpi);
return igniteConfiguration;
}}
启动弹簧,并得到以下错误。
2018-04-18 12:27:29.277 WARN 12588 - main .GridEntDiscoveryNodeValidationProcessor : GridGain节点不能和Ignite节点在一个集群中[locNodeAddrs=server/0:0:0:0:0:0:1,server/10.29.96.164,server/127.0.0.1,/192.168.56.1,/192.168.99.1,rmtNodeAddrs=172.17.0.1/0:0:0:0:0:0:0:0:1%lo,192.168.99.100/10.0.2.15,10.0.2.15/127.0.0.1,/172.17.0.1,/192.168.99.100] 2018-04-18 12:27:29.283错误12588 - main o.a.i.internal.IgniteKernal%MyIgnite :启动时出现异常(将回滚启动例程)。
我正在尝试使用gridgain作为redis的替代品,并使用@Cacheable注解。有没有能正常工作的gridgain的例子?是什么导致了上面的错误?
G.
发布于 2018-04-19 17:14:43
GridGain node cannot be in one cluster with Ignite node是不言自明的。
-
发布于 2018-04-20 04:35:03
1)好的,问题似乎是没有提供H2作为依赖项。2)使用GridGain专业版而不是GridGain企业版。
G.
https://stackoverflow.com/questions/49905744
复制相似问题