首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SpringBoot的GridGain

使用SpringBoot的GridGain
EN

Stack Overflow用户
提问于 2018-04-19 01:32:47
回答 2查看 509关注 0票数 0

我已经编译了一个GridGain专业版的docker镜像,并运行了这个。使用Java,我可以做以下事情……

创建以下@Configuration文件

代码语言:javascript
复制
@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.

EN

回答 2

Stack Overflow用户

发布于 2018-04-19 17:14:43

GridGain node cannot be in one cluster with Ignite node是不言自明的。

  • 你可能忘了从早期的experiments.
  • Or中阻止一些本地的Apache你故意要让GridGain加入一个Ignite集群。
  • 或者更好的是,有一个Apache的实例在你的本地网络中的某个地方运行,并且你已经设置了多播发现或其他类型的过于广泛的发现,所以他们正在互相看到。
  • 可能是

-

  • .x.jar从一个节点的类路径中消失。如有必要,请选中并添加。
票数 1
EN

Stack Overflow用户

发布于 2018-04-20 04:35:03

1)好的,问题似乎是没有提供H2作为依赖项。2)使用GridGain专业版而不是GridGain企业版。

G.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49905744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档