java – 设置ehcache复制 – 需要什么组播设置?

我正在尝试设置ehcache复制,如下所示: http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s22.2
这是在Windows机器上,但最终将在Solaris上运行.

说明如下设置提供商:

<cacheManagerPeerProviderFactory
     class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
     properties="peerdiscovery=automatic,multicastGroupAddress=230.0.0.1,multicastGroupPort=4446,timetoLive=32"/>

一个这样的听众:

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

我的问题是:
组播IP地址和端口是否任意(我知道地址必须在特定范围内生效,但是它们是否必须是特定的数字)?
是否需要我们的系统管理员(我在办公室网络中)以某种方式设置?

我想在本地测试,所以我运行两个单独的tomcat实例与上述配置.
我需要改变每一个?我知道听众听不到同一个端口 – 但是提供者呢?
还有听众端口也是任意的吗?

我已经尝试像上面那样设置它,但在我的测试中,缓存似乎没有被复制 – 在一个tomcat的缓存中添加的值不存在于另一个缓存中.
有什么可以做的来调试这种情况(除了数据包嗅探)吗?

提前感谢任何帮助,一直撕裂我的头发在这一个

解决方法

I want to test it locally so am
running two separate tomcat instances
with the above config.

由于我刚刚提交了关于cherouvims related question的答案,我只想强调这一点,他们实际上提供了一个例子,至少做一些类似的事情(每个主机的多个节点,虽然只有一个实例):请参见RMI Distributed Caching文档.

更改每个cacheManagerPeerListenerFactory的TCP端口确实很重要,但是多播设置可以(我认为它们必须)保持不变:您可以在ehcache.xml’s中看到上述完整示例中的操作:端口号增加一个每个节点从40001到40006,而组播设置保持不变.

如果您遵守这一点,您的问题可能只是与在Windows上运行的Tomcat相关 – 请参阅RMI Distributed Caching中的常见问题部分中的相关段落:

There is a bug in Tomcat and/or the JDK where any RMI listener will fail to start on Tomcat if the installation path has spaces in it. […] As the default on Windows is to install Tomcat in “Program Files”,this issue will occur by default.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量