集群中的 Liferay 6.2 Lucene 复制

Liferay 6.2 Lucene replication in cluster

我欢迎任何有关简单问题的帮助:我有集群环境并且我在属性中启用了 Lucene 复制 (lucene.replicate.write=true)。现在,所有教程都在指导我重新索引 Lucene。

我应该 运行 它在一个节点上吗?双方?同时还是依次?

Liferay 论坛也有人问过这个问题:https://www.liferay.com/community/forums/-/message_boards/view_message/69175435

谢谢!

有多种方法可以在 Liferay 中配置搜索集群。如果您使用 lucene.replicate.write=true 方式,您将看到多次重建索引运行:每次重新启动服务器时,您都必须重建该服务器的文档索引,因为它可能在停机时错过了索引请求。

所以,简短的回答:别担心,重新索引两者。不管你现在是否只需要一个,迟早你都会这样做。

基本上我最初做的是:

  • cluster.link.enabled=true
  • lucene.replicate.write=true

结果是复制失败

我接下来尝试的是克服这个问题并继续对门户的其余部分进行集群,这最终也帮助了 lucene。我的进步是:

  • 部署集群激活密钥
  • 部署ehcache-集群-web.war
  • 传送门-ext.properties:

    • cluster.link.enabled=true
    • cluster.link.autodetect.address=<COMMONLY_ACCESSIBLE_IP_AND_PORT>
    • lucene.commit.batch.size=1
    • lucene.commit.time.interval=5000
    • lucene.replicate.write=true
    • ehcache.cluster.link.replication.enabled=true
    • cluster.link.channel.properties.control=<PATH_TO_XML>
    • cluster.link.channel.properties.transport.0=<PATH_TO_XML>
    • portal.instance.protocol=http
    • portal.instance.http.port=8080
  • setenv.sh

    • -Djava.net.preferIPv4Stack=true
    • -Djgroups.bind_addr=<IP_OF_THE_NODE>
  • 通过 Liferay 教程编辑 clusterlink_control 和 clusterlink_transport 文件
  • 当服务器关闭时删除 data/lucene 的内容并在控制面板中 运行 在一个节点上重新索引

最后,Lucene 复制正在运行。我认为可能重要的是以下内容。起初,portal.properties 键 lucene.commit.* 的解释有点难以理解。通过反复试验,我发现这两个键是 AND 关系。另外,我发现了 portal.instance.* 键,这些键在集群中用于多种用途,如果您有负载平衡器,这些键可能很重要 and/or 节点之间的 Apache 和自动检测失败。