我尝试使用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.我是否需要为两台机器之间的连接添加任何其他代码?
请尽快帮助我。 感谢
答案 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;
您可以提供任何端口(系统未使用该端口
)