Liferay聚类

时间:2014-07-10 13:15:25

标签: liferay cluster-computing liferay-6

我正在尝试使用下面的链接

在liferay 6.2中实现群集

https://www.liferay.com/en_GB/documentation/liferay-portal/6.2/user-guide/-/ai/liferay-clustering-liferay-portal-6-2-user-guide-20-en

我在liferay服务器portal-ext.properties中放置了以下属性,并将Liferay服务器指向同一个数据库。

cluster.link.enabled=true

cluster.link.autodetect.address=localhost:3306

lucene.replicate.write=true

现在我从第一个Liferay实例向一个页面添加了一个portlet,并从Second Liferay实例访问同一页面(使用相同的用户ID)我收到错误消息,说明" Invalid authentication Token"。它似乎是群集中的会话复制问题,但无法弄清楚如何解决这个问题。

寻求帮助以弄清楚什么是错误的。

先谢谢。

2 个答案:

答案 0 :(得分:7)

您的配置存在严重问题,尽管已经接受了答案(我大多不同意)。

您必须在Liferay上设置正确的群集。为了让Liferay找到“另一个”节点,它使用Multicast(默认情况下)。如果您有多个网卡但想要/需要一个特定的网卡用于检测另一个节点,您将给出cluster.link.autodetect.address。 Liferay将使用它来查看(通过您的操作系统)使用哪个网络适配器连接到该地址,然后使用生成的网络适配器。如果您只有一个适配器,则默认值www.google.com:80是好的。如果将其设置为localhost,Liferay将尝试与localhost上的其他节点进行通信,因此只有在同一台计算机上运行两个Liferay进程时才会成功 - 否则您将无法进行缓存同步所有。

根据Liferay Clustering的原则,我建议转到User's Guide,特别是不进行会话复制(例如tomcat配置的会话复制)。 95%的用户不需要它,它增加了处理的开销,吃掉了第二台服务器的性能优势。当你在它时:Check some common pitfalls when clustering Liferay(但要注意:还有更多)

编辑:回答“无效的身份验证令牌”问题:我的建议是实施粘性会话 - 例如将会话创建平衡到某台机器,然后坚持下去。身份验证令牌用于缓解CSRF攻击。没有它意味着您的会话复制无法正常工作。正如我上面所述,我不建议启用会话复制,因此粘性会话是您最好的选择恕我直言。

答案 1 :(得分:3)

会话群集在Application Server中实现,而不是在Liferay中实现。您可以在AS上手动配置它,也可以在Load Balancer上启用粘性会话。

有很多关于如何在Tomcat中执行此操作的文章:

第二篇文章很重,据我记得要运行基本的会话复制,你需要做的就是在tomcat配置中启用SimpleTcpCluster并将<distributable />添加到所有你的web.xmls网络应用程序。