2015-05-03 3 views
0

Привет всем Я новичок в Infinispan, и у меня есть некоторые вопросы относительно распределенного режима и быстрого запуска, приведенного в infinispan/infinispan-quickstart · GitHub, в частности, с кластеризованным кешем-quickstart.Infinispan Распределенный режим clustered-cache-quickstart

Прежде всего, насколько я понимаю, распределенный режим позволяет иметь определенное количество копий ввода, а не реплицированный режим, который реплицирует записи во всех узлах. Например, если у нас было 3 записи (1, 2, 3) и 3 кэша (A, B, C), где numOwners (2) результирующий вид кластера в распределенном режиме мог бы возникнуть как: A, содержащий 1,2 B содержащий 2,3 C, содержащий 3,1 Если кластер реплицированного режима привел к: A, B и C, содержащему 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" 

Terminal 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):

Узел

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 

Узел С

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 Форумах Тристана Таррант, копирование вставки в ответ:

Это потому, что быстрый старт не был правильно обновляется, когда мы изменили поведение entrySet/Keyset в 7.0. Ранее эти методы только возвращали данные на локальном узле, но теперь они возвращают данные со всех узлов. Чтобы получить старое поведение (т. Е. Только локальный контент), вам нужно указать флаг 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-кластера-кэш.Но все время я получил:

В клиенте:

[ERROR] Не удалось выполнить цели org.codehaus.mojo: EXEC-Maven-плагин: 1.2.1.jbossorg-3: Java (default- cli) в проекте javaAPI: Исключение произошло при выполнении класса Java. null: InvocationTargetException: достигнут конец потока! -> [Помощь 1]

И сервер, я получил:

WARN [TCP] (ConnectionMap.Acceptor [127.0.0.1:7800],null) JGRP000006: не удалось принимать соединения от сверстников java.net.SocketException: ConnectionMap.Connection.readPeerAddress(): cookie, прочитанный 127.0.0.1:7800, не соответствует собственному файлу cookie; оконечное соединение