Liferay / EHCache聚类

时间:2013-10-31 20:11:19

标签: liferay cluster-computing ehcache multicast rackspace

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

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

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

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

我在门户网站属性文件中启用了以下行:

cluster.link.enabled =真

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

lucene.replicate.write =真

另一件事是我们在沙盒环境中完美地运行了这个设置。唯一的区别是沙箱不在机架空间,但在我们办公室的本地......

请帮忙!

由于 韦塞尔

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

下面的行是您的门户网站属性文件中所需的内容,以使jgroups缓存复制在rackspace Windows服务器上运行。默认RMI复制不起作用:

cluster.link.enabled =真

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 =真

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

-Djgroups.bind_addr = [本地网络IP]

1 个答案:

答案 0 :(得分:1)

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

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