首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Infinispan分布式模式集群-缓存-快速启动

Infinispan分布式模式集群-缓存-快速启动
EN

Stack Overflow用户
提问于 2015-05-03 20:38:30
回答 1查看 994关注 0票数 0

大家好,我是Infinispan的新手,我有一些关于无穷大/无穷大-快速启动·GitHub中提供的分布式模式和快速启动的问题,特别是集群缓存-快速启动。

首先,据我所知,分布式模式允许有定义数量的条目副本,而不是复制模式,后者在所有节点中复制条目。例如,如果在numOwners(2)中有3个条目(1、2、3)和3个缓存(A、B、C),则在分布式模式下产生的集群视图可能会导致: A包含包含2,3C的2,3C,其中复制模式集群将导致:a、B和C包含1,2,3,如果我的假设是错误的,请更正我。

更重要的是,我使用以下说明运行无穷大-快速启动/集群-缓存·GitHub --快速启动

若要尝试使用分布式缓存,请在分离的终端中运行以下命令:

1号航站楼

代码语言:javascript
复制
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d A"

2号航站楼

代码语言:javascript
复制
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d B"

3号航站楼

代码语言:javascript
复制
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d C"

我的所有节点都有相同的条目(我将条目编号限制在10):

节点A

代码语言:javascript
复制
    Cache contents on node A-29339
    key-0 = A-29339-0
    key-1 = A-29339-1
    key-2 = A-29339-2
    key-3 = A-29339-3
    key-4 = A-29339-4
    key-5 = A-29339-5
    key-6 = A-29339-6
    key-7 = A-29339-7
    key-8 = A-29339-8
    key-9 = A-29339-9

节点B

代码语言:javascript
复制
    Cache contents on node B-36604
    key-0 = A-29339-0
    key-1 = A-29339-1
    key-2 = A-29339-2
    key-3 = A-29339-3
    key-4 = A-29339-4
    key-5 = A-29339-5
    key-6 = A-29339-6
    key-7 = A-29339-7
    key-8 = A-29339-8
    key-9 = A-29339-9

节点C

代码语言:javascript
复制
    Cache contents on node C-26839
    key-0 = A-29339-0
    key-1 = A-29339-1
    key-2 = A-29339-2
    key-3 = A-29339-3
    key-4 = A-29339-4
    key-5 = A-29339-5
    key-6 = A-29339-6
    key-7 = A-29339-7
    key-8 = A-29339-8
    key-9 = A-29339-9

但是,在文档开始使用Infinispan中,它说:您还可以看到,通过按Enter键,每个节点都持有不同的条目集。不过,我的输出显示,所有条目基本上都是复制的,就像在复制模式下所做的那样。知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 11:54:01

特里斯坦·塔兰特在JBoss论坛上回答,复制粘贴回复:

这是因为当我们在7.0中更改entrySet/keySet的行为时,快速启动没有被正确更新。以前,这些方法只返回本地节点上的数据,但现在它们从所有节点返回数据。要获得旧的行为(即只有本地内容),您需要指定CACHE_MODE_LOCAL标志,这样其他远程节点就不会查询数据。

因此,从以下位置更改Node.java @第133行:

代码语言:javascript
复制
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(cache.entrySet());  

代码语言:javascript
复制
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(cache.getAdvancedCache().withFlags(Flag.CACHE_MODE_LOCAL).entrySet());  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30019124

复制
相关文章

相似问题

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