Ehcache - реплицированное кэширование с использованием RMI - PullRequest
2 голосов
/ 03 февраля 2011

Я пытался использовать ehcache, и это сработало.И я просто пытаюсь реализовать распределенное кэширование с помощью ehcache RMI.Я выполнил шаги, указанные в URL: http://ehcache.org/documentation/distributed_caching_with_rmi.html?cf03800515=21D4D871!NTAxODEzNDE0OmNvcnByYWRpdXNzc286vsRypkVtSPb7t3MnL22gFQ==#

Но я не смог найти работающее распределенное кэширование ...

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//<remotemachineip>:<i want to know what port id should be given here>/deviceCache1"/>

<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=<localmachineip>,port=<i want to know what port id should be given here>,
socketTimeoutMillis=120000"/>

Я дал номер порта и у меня есть автономныйJava-код на двух машинах.Сначала я запускаю основную программу на компьютере моего друга, которая помещает данные в «deviceCache1», и пытаюсь получить доступ к этому кэшу в моей основной программе.Но я не нахожу никакой связи между двумя машинами.

Может показаться глупым, но мне нужно знать кое-что о кэшировании.Пожалуйста, кто-нибудь прояснит мои сомнения и поможет мне.Итак, мои вопросы: 1. Какие идентификаторы портов должны быть указаны в ehcache.xml на обеих машинах?2. Нужно ли мне включить некоторые службы Windows для использования портов RMI?3. Нужно ли мне добавлять какой-либо другой код для соединения между двумя компьютерами?

Пожалуйста, помогите мне как можно скорее.Спасибо

Ответы [ 2 ]

3 голосов
/ 04 февраля 2011

Из-за ограничения размера комментариев, и это ответит на ваш вопрос

Конфигурация на сервере 1 будет такой

<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
    properties="hostName=localhost, port=40001,socketTimeoutMillis=2000"/>

Конфигурация на сервере2 будет такой

<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
    properties="hostName=localhost, port=40002,socketTimeoutMillis=2000"/>

Если проблема не решена, вставьте файл ehcache.xml.Пожалуйста, примите ответ, если он отвечает на ваш вопрос.

0 голосов
/ 04 февраля 2011

Вам также необходимо добавить cacheEventListenerFactory в кеш (который необходимо реплицировать)

memoryStoreEvictionPolicy = "УКП" diskPersistent = "истина"
timeToLiveSeconds = "86400" maxElementsOnDisk = "1000">

Вы можете указать любой порт (который не используется системой

...