Liferay/EHCache集群

Liferay/EHCache集群,liferay,cluster-computing,ehcache,multicast,rackspace,Liferay,Cluster Computing,Ehcache,Multicast,Rackspace,我正在尝试将liferay 6.1.1 CE门户群集到Rackspace的两台服务器上。服务器是windows 2008 R2,下一代云服务器。我提到这一点是因为要使多播工作,我必须在rackspace启用云网络,并将其仅连接到下一代服务器 每台服务器有三个网络接口:公共、机架空间数据中心、本地专用(云网络) 我已经遵循了多篇文章中的tee的所有步骤,但出于某种原因,它只是不想在两台服务器之间复制数据缓存 会话复制的apache/tomcat配置工作正常。它还使用多播 我已在门户属性文件中启用以

我正在尝试将liferay 6.1.1 CE门户群集到Rackspace的两台服务器上。服务器是windows 2008 R2,下一代云服务器。我提到这一点是因为要使多播工作,我必须在rackspace启用云网络,并将其仅连接到下一代服务器

每台服务器有三个网络接口:公共、机架空间数据中心、本地专用(云网络)

我已经遵循了多篇文章中的tee的所有步骤,但出于某种原因,它只是不想在两台服务器之间复制数据缓存

会话复制的apache/tomcat配置工作正常。它还使用多播

我已在门户属性文件中启用以下行:

cluster.link.enabled=true

cluster.link.autodetect.address=:----我添加了这个,因为如果我没有在这里设置本地地址,它看起来会试图绑定到公共接口

lucene.replicate.write=true

这里的另一件事是,我们在我们的沙箱环境中完全可以使用这个精确的设置。唯一的区别是沙箱不在机架空间,而是在我们办公室的本地

请帮忙

谢谢 韦塞尔

因此,如果您有连接了私有云网络的下一代服务器,那么rackspace的多播确实有效。但是,要使此liferay群集正常工作,您必须使用jgroups而不是RMI。

下面几行是门户属性文件中所需的内容,以使jgroups缓存复制在rackspace windows服务器上工作。默认RMI复制不起作用: cluster.link.enabled=true

cluster.link.autodetect.address=[本地网络IP]:[端口]

ehcache.bootstrap.cache.loader.factory=com.liferay.portal.cache.ehcache.JGroupsBootstrapCacheLoaderFactory

ehcache.cache.event.listener.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory

ehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory

lucene.replicate.write=true

还将以下行添加到setenv.bat中,作为JVM启动选项的一部分:

-Djgroups.bind_addr=[local network IP]

除非您特别“介绍”节点彼此,否则它们将尝试通过多播发现彼此。我打赌Rackspace不会路由任何多播请求。查看JGroups配置,您可以让集群计算机通过单播进行通信,如果连接正确,它应该可以工作(首先尝试ping)


您必须设置自动检测地址,因为这是确定(多播)请求将在哪个接口上发送的机制。由于您显然不希望它们出现在面向公众的界面上,因此您可以正确地(也应该如此)配置它们。

我将启动一些服务器进行测试。您是否在Rackspace启动它们?是的。我在Rackspace担任开发人员支持工程师。我当前正在复制您的Liferay设置。接下来,您的两台服务器都在同一个数据中心,对吗?您为cluster.link.autodetect.address设置的IP地址是您创建并连接到两台服务器的网络的IP地址吗?是的,先生。两者都在作战需求文件数据中心。是的,这个地址是本地云网络的地址也需要注意的是,我在Liferay中还有一个portlet,它也使用EHCache和RMI复制以及多播。它与Liferay缓存相同,出于某种原因,它无法复制…谢谢Olaf。实际上,Rackspace声称多播应该与“云网络”一起工作。本质上,它创建了一个与其他网络隔离的第2层软件网络。除其他外,他们实现这一点是为了多播目的。有没有想过为什么tomcat会话复制可以完美地与多播一起工作,而不是liferay缓存复制?从我的头脑中,答案是几乎总能解决问题的低挂果实。如果这对您的情况没有帮助,则很难进行距离诊断。您设置了clusterlink自动检测地址,对吗?(因为上面的设置为空)。另外,检查日志文件包含的内容-如果它检测到任何内容,它会提示您是的,先生,我确实将该地址设置为本地地址。对不起,我把它留白了。我在log4j.properties文件.log4j.logger.net.sf.ehcache=INFO log4j.logger.net.sf.ehcache.config=DEBUG log4j.logger.net.sf.ehcache.distribution=debugh这会创建大量日志记录,很难过滤。但从我所看到的情况来看,多播确实在进行通信。但缓存仍然没有复制。。。