【问题标题】:EhCache - Manual Replication not workingEhCache - 手动复制不起作用
【发布时间】:2013-06-25 13:15:31
【问题描述】:

我正在尝试为两个不同的服务器设置手动复制 Ehcache。以下是我的配置:

<cache name="codeTaskCache" maxElementsInMemory="1000" eternal="false"
 timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="false" />


 <cacheManagerPeerProviderFactory class=
                      "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
                      properties="peerDiscovery=manual,
                      rmiUrls=//server1:40001/codeTaskCache |     //server2:40001/codeTaskCache"
                      propertySeparator="," />` 

在两个不同的 unix 机器上运行的两个 tomcat 服务器上存在相同的配置。

从 server1 -> server2 复制可以正常工作,但不能从 server2 -> server1 复制,这很奇怪。

在文档中,他们有一条语句'rmiUrls 是正在配置的服务器的缓存对等方的列表。不要将正在配置的服务器包括在列表中。'

但是,如果它以一种方式起作用,那么为什么不以另一种方式起作用呢?有人可以对此有所了解吗?提前致谢。

【问题讨论】:

  • 我刚刚被类似的问题困扰,也许我的帖子可以帮助你:stackoverflow.com/questions/17314121/…
  • 感谢 Oddbeck,但我没有使用 cacheManagerPeerListenerFactory。
  • 但是您肯定必须让服务器知道它应该在本地侦听来自其他服务器的传入连接的端口 - 您目前如何解决这个问题?
  • 我没有!但是缓存是从 Server1 -> Server2 更新的,只是我在第一篇文章中提到的配置。

标签: replication rmi ehcache


【解决方案1】:

RMI url 不应指向自身,而应指向其他 ehcache 实例 - 至少这对我有用。

还要确保主机名可以从两台服务器解析,在最后一次绝望的尝试中,您甚至可以尝试在侦听器部分 XML 的侦听语句中包含“hostname=name_of_server_dot_domain_dot_com”。

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2013-09-25
    • 2021-01-19
    相关资源
    最近更新 更多