首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springboot Apache Ignite集成- DB集成

Springboot Apache Ignite集成- DB集成
EN

Stack Overflow用户
提问于 2019-11-14 21:48:11
回答 2查看 144关注 0票数 0

我正在尝试使用poc在我们的微服务中使用Apache来缓存DB事务。以下是Ignite Config代码:

代码语言:javascript
复制
IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
igniteConfiguration.setIgniteInstanceName("igniteConfig");

ignite = Ignition.start(igniteConfiguration);

CacheConfiguration<Long, MyClass> myClassCacheConfig = new CacheConfiguration<>("cacheName");
myClassCacheConfig.setIndexedTypes(Long.class, MyClass.class);
myClassCacheConfig.setOnheapCacheEnabled(true);
myClassCacheConfig.setWriteBehindEnabled(false);
myClassCacheConfig.setReadThrough(false);
myClassCacheConfig.setWriteThrough(false);
myClassCacheConfig.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
myClassCacheConfig.setPartitionLossPolicy(PartitionLossPolicy.READ_WRITE_ALL);
myClassCacheConfig.setExpiryPolicyFactory(AccessedExpiryPolicy.factoryOf(new Duration(TimeUnit.MINUTES, 1)));

ignite.getOrCreateCache(myClassCacheConfig);

我在pom.xml中使用以下依赖项

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.apache.ignite/ignite-spring -->
<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-spring</artifactId>
    <version>2.7.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.ignite/ignite-core -->
<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-core</artifactId>
    <version>2.7.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.ignite/ignite-indexing -->
<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-indexing</artifactId>
    <version>2.7.6</version>
</dependency>

下面是我在日志中看到的内容:

代码语言:javascript
复制
15:35:13]    __________  ________________ 
[15:35:13]   /  _/ ___/ |/ /  _/_  __/ __/ 
[15:35:13]  _/ // (7 7    // /  / / / _/   
[15:35:13] /___/\___/_/|_/___/ /_/ /___/  
[15:35:13] 
.....
[15:35:16] Ignite node started OK (id=someid, instance name=igniteConfig)
[15:35:16] Topology snapshot [ver=1, locNode=204dbcd4, servers=1, clients=0, state=ACTIVE, CPUs=12, offheap=6.4GB, heap=8.0GB]

我的问题是:

  1. 如何确保数据被缓存?
  2. ,我正在尝试使用代码:

来获取缓存的大小。

System.out.println("in service cache size is: "+igniteConfigBean.getOrCreateCache("cacheName").size());我总是得到0

那么我缺少什么基本的配置呢?

EN

回答 2

Stack Overflow用户

发布于 2019-11-15 00:05:44

Stack Overflow用户

发布于 2019-11-15 09:56:54

我的猜测是,计算缓存大小的节点不会进入群集的拓扑结构,而是形成自己的一个小的空集群。确保为此使用客户端节点。

此外,如果希望数据从DB预加载到缓存中,请确保调用loadCache()。否则,数据只能根据请求从DB加载。

https://apacheignite.readme.io/docs/data-loading#ignitecacheloadcache

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

https://stackoverflow.com/questions/58867035

复制
相关文章

相似问题

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