Ehcache Jgroups репликации с использованием TCP
Я пытаюсь настроить реплицируемый кеш с помощью Jgroups в Ehcache. У меня проблемы с кластеризацией кеша. Я создал 2 проекта в eclipse, каждый ссылаясь на свой файл конфигурации ehcache.xml.
Оба конфигурационных файла идентичны и приведены ниже.
<?xml version="1.0"?>
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=TCP(bind_port=7800):
TCPPING(initial_hosts=localhost[7800],localhost[7801];port_range=10;timeout=3000;
num_initial_members=3):
VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(retransmit_timeout=3000):
pbcast.GMS(join_timeout=50000;print_local_addr=true)"
propertySeparator="::" />
<cache name="sampleCache"
maxElementsInMemory="1000000"
eternal="true"
overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
properties="replicateAsynchronously=true"/>
</cache>
Я использую следующие файлы JAR в моем classpath.
-ehcache-2.9.0.jar -ehcache-jgroupsreplication-1.7.jar -jgroups-3.6.0.Final.jar -log4j-1.2.16
Когда я запускаю программы, проект1 показывает
63511 [main] DEBUG org.jgroups.protocols.pbcast.NAKACK -
[SBSPBWSVM110-42986 setDigest()]
existing digest: []
new digest: SBSPBWSVM110-42986: [0 (0)]
resulting digest: SBSPBWSVM110-42986: [0 (0)]
63511 [main] DEBUG org.jgroups.protocols.pbcast.GMS - SBSPBWSVM110-42986: installing view [SBSPBWSVM110-42986|0] (1) [SBSPBWSVM110-42986]
63543 [main] DEBUG org.jgroups.protocols.pbcast.GMS - SBSPBWSVM110-42986: created cluster (first member). My view is [SBSPBWSVM110-42986|0], impl is org.jgroups.protocols.pbcast.CoordGmsImpl
Jan 09, 2015 11:49:51 AM net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProvider init
INFO:JGroups Replication started for 'EH_CACHE'. JChannel: local_addr=SBSPBWSVM110-42986
cluster_name=EH_CACHE
my_view=[SBSPBWSVM110-42986|0] (1) [SBSPBWSVM110-42986]
state=CONNECTED
discard_own_messages=true
state_transfer_supported=false
Когда я запускаю программы, project2 показывает
63451 [main] DEBUG org.jgroups.protocols.pbcast.NAKACK -
[SBSPBWSVM110-20554 setDigest()]
existing digest: []
new digest: SBSPBWSVM110-20554: [0 (0)]
resulting digest: SBSPBWSVM110-20554: [0 (0)]
63451 [main] DEBUG org.jgroups.protocols.pbcast.GMS - SBSPBWSVM110-20554: installing view [SBSPBWSVM110-20554|0] (1) [SBSPBWSVM110-20554]
63452 [main] DEBUG org.jgroups.protocols.pbcast.GMS - SBSPBWSVM110-20554: created cluster (first member). My view is [SBSPBWSVM110-20554|0], impl is org.jgroups.protocols.pbcast.CoordGmsImpl
Jan 09, 2015 11:49:51 AM net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProvider init
INFO: JGroups Replication started for 'EH_CACHE'. JChannel: local_addr=SBSPBWSVM110-20554
cluster_name=EH_CACHE
my_view=[SBSPBWSVM110-20554|0] (1) [SBSPBWSVM110-20554]
state=CONNECTED
discard_own_messages=true
state_transfer_supported=false
Но репликации просто не происходит. Я выполнил RMIreplication с использованием Ehcache и следую тому же подходу и здесь. Поэтому я предполагаю, что в моем коде Java нет ничего плохого.
Я не могу найти проблему здесь. Моя конфигурация неверна?? Пожалуйста, помогите мне с этой проблемой..
1 ответ
Конфигурация, которую вы используете, странная: она портит некоторые протоколы. Не может ли ehcache обратиться к файлу конфигурации JGroups, например, udp.xml? Также вы устанавливаете bind_addr в TCP или используете -Djgroups.bind_addr=1.2.3.4, где 1.2.3.4 - сетевой интерфейс. Затем в TCPPING.initial_hosts вам нужно перечислить всех участников с адресами привязки, которые вы использовали выше, например, 1.2.3.4[7800],5.6.7.8[7800] и т. Д.