大家好,我是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号航站楼
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d A"2号航站楼
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d B"3号航站楼
mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d C"我的所有节点都有相同的条目(我将条目编号限制在10):
节点A
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
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
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键,每个节点都持有不同的条目集。不过,我的输出显示,所有条目基本上都是复制的,就像在复制模式下所做的那样。知道为什么会这样吗?
发布于 2015-05-04 11:54:01
特里斯坦·塔兰特在JBoss论坛上回答,复制粘贴回复:
这是因为当我们在7.0中更改entrySet/keySet的行为时,快速启动没有被正确更新。以前,这些方法只返回本地节点上的数据,但现在它们从所有节点返回数据。要获得旧的行为(即只有本地内容),您需要指定CACHE_MODE_LOCAL标志,这样其他远程节点就不会查询数据。
因此,从以下位置更改Node.java @第133行:
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(cache.entrySet()); 至
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(cache.getAdvancedCache().withFlags(Flag.CACHE_MODE_LOCAL).entrySet()); https://stackoverflow.com/questions/30019124
复制相似问题