2015-05-03 57 views
0

大家好我是新来的Infinispan和我有关于特别是集群高速缓存 - 快速启动在infinispan/infinispan-quickstart · GitHub提供的分布式模式和快速入门的一些问题。Infinispan的分布式模式集群高速缓存 - 快速入门

首先,据我了解分布式模式允许有进入副本,而不是复制的模式,所有的节点内复制的条目定义数字。例如,如果我们有3项(1,2,3)和图3级的高速缓存(A,B,C),其中numOwners(2)群集的在分布式模式下所得到的视图,可能会导致如: 含有1,2- 乙含含3,1 如果复制模式簇将导致2,3 C: A,B和含有1,2,3 请纠正我,如果我的假设是错误的温度。

更重要的是,后来我跑infinispan-quickstart/clustered-cache · 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" 

Terminal 3

mvn compile exec:java -Djava.net.preferIPv4Stack=true -Dexec.mainClass="org.infinispan.quickstart.clusteredcache.Node" -Dexec.args="-d C" 

我的所有节点导致具有相同的条目(I限制条目编号,以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 

然而,文档Getting Started with Infinispan它说:你也可以看到,每个节点保存按Enter键一组不同的条目。 尽管如此,我的输出显示所有条目基本上都会在复制模式下进行复制。 任何想法为什么会这样发生?

+0

似乎节点B和C没有写入任何内容到缓存中,而缓存被聚集,因为A的条目被复制。你可以上传和链接日志? –

+0

交叉链接到JBoss论坛:https://developer.jboss.org/message/928129 –

回答

2

回答了JBoss的论坛由特里斯坦塔兰特,复制粘贴的答复:

这是因为当我们在7.0的entrySet改变/键集行为的快速启动未正确更新。以前这些方法只返回本地节点上的数据,但现在它们返回所有节点的数据。要获得旧的行为(即只有本地内容),您需要指定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()); 
0

余米试图建立一个热棒客户端连接到Infinispan的集群缓存。但是,所有的时间我:

在客户端:

[错误]未能执行目标org.codehaus.mojo:EXEC-Maven的插件:1.2.1.jbossorg-3:JAVA(默认 - cli)关于项目javaAPI:执行Java类时发生异常。 null:InvocationTargetException:已到达流结尾! - > [帮助1]

而在服务器,我得到:

WARN [TCP](ConnectionMap.Acceptor [127.0.0.1:7800],null)JGRP000006:无法接受来自对等体连接 java.net.SocketException:ConnectionMap.Connection.readPeerAddress():由127.0.0.1:7800读取的cookie与自己的cookie不匹配;终止连接