代码之家  ›  专栏  ›  技术社区  ›  Liferay Beginner

Liferay群集

  •  4
  • Liferay Beginner  · 技术社区  · 12 年前

    我正在尝试使用下面的链接在救生筏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,并从第二个Liferay示例访问同一页面(使用相同的用户ID),我收到错误消息,指出“ Invalid authentication Token “。这似乎是群集中的会话复制问题,但无法确定如何解决此问题。

    寻求帮助找出问题所在。

    提前感谢。

    2 回复  |  直到 12 年前
        1
  •  7
  •   Olaf Kock    12 年前

    您的配置有一个严重的问题,尽管答案已经被接受(我基本上不同意)。

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

    关于Liferay集群的原理,我建议您访问 User's Guide 特别是不进行会话复制(例如,tomcat配置的会话复制)。95%的用户不需要它,它增加了大量的处理开销,消耗了第二台服务器的性能优势。当你在做的时候: Check some common pitfalls when clustering Liferay (但要注意:还有更多)

    编辑 :要回答您的“无效身份验证令牌”问题:我的建议是实施粘性会话-例如,平衡特定计算机的会话创建,然后坚持使用。身份验证令牌用于减轻CSRF攻击。没有它意味着会话复制无法正常工作。如上所述,我不建议启用会话复制,因此粘性会话是IMHO的最佳选择。

        2
  •  3
  •   Krzysztof Gołębiowski    12 年前

    会话集群是在Application Server中实现的,而不是在Liferay中实现的。您可以在AS上手动配置它,也可以在负载平衡器上启用粘性会话。

    有很多关于如何在Tomcat中实现这一点的文章:

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