2015-05-03 100 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不匹配;終止連接