Ehcache - 使用RMI复制缓存

时间:2011-02-03 13:48:36

标签: java rmi ehcache distributed-caching

我尝试使用ehcache并且它有效。我只是尝试使用ehcache RMI实现分布式缓存。我按照网址中提供的步骤进行了操作: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中需要提供哪些端口ID? 2.我是否需要启用某些Windows服务才能使用rmi端口? 3.我是否需要为两台机器之间的连接添加任何其他代码?

请尽快帮助我。 感谢

2 个答案:

答案 0 :(得分:3)

由于评论大小限制&amp;这将回答你的问题

服务器1上的配置将是这样的

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

server2上的配置将是这样的

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

如果您仍然遇到此问题,请粘贴您的ehcache.xml。如果它回答了你的问题,请接受答案。

答案 1 :(得分:0)

您还需要将cacheEventListenerFactory添加到缓存中(需要复制)

      memoryStoreEvictionPolicy = “LFU”       diskPersistent = “真”
      timeToLiveSeconds = “86400”       maxElementsOnDisk = “1000” &GT;       
        

您可以提供任何端口(系统未使用该端口