2

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

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

我已经按照多篇文章中的所有步骤操作,但由于某种原因,它只是不想在两台服务器之间复制数据缓存。

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

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

cluster.link.enabled=true

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

lucene.replicate.write=true

这里的另一件事是,我们有这个精确的设置在我们的沙盒环境中完美地工作。唯一的区别是沙盒不在机架空间,而是在我们办公室的本地......

请帮忙!

谢谢韦塞尔

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

下面的几行是您的门户属性文件中需要的,以使 jgroups 缓存复制在机架空间 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=[本地网络IP]

4

1 回答 1

1

除非您专门将节点“介绍”给彼此,否则它们将尝试通过多播来发现彼此。我敢打赌,Rackspace 没有路由任何多播请求。查看 JGroups 配置,您可以在其中让集群机器通过单播进行通信,如果连接正确,它应该可以工作(先尝试 ping)

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

于 2013-10-31T21:36:31.433 回答