Lucene 数据复制如何在 ElasticSearch 和 Apache Solr 等技术上运行

How Lucene Data Replication Works on Technologies Like ElasticSearch and Apache Solr

在高可用性环境下,这些技术如何复制Lucene数据?考虑到今天我不使用此类技术,我该如何复制我的 Lucene 目录。

这个问题可能太宽泛,无法回答任何有用的问题,但通常您有两个选择:

  • 将文档索引到一个主节点,然后将已更改的索引文件复制到所有其他节点。这些通常称为 master/slave 设置。 Solr 的第一个版本使用 rsync 来执行此操作——这样 Solr 就不必了解有关复制本身的任何信息。后来的版本改为使用 HTTP 来复制索引文件。如果您已经有一个希望在更多节点上可用的 Lucene 索引,这是最简单的解决方案,不需要对您的项目进行根本性更改。

  • 将要添加到索引中的文档分发给 index/shard 的所有已知副本。索引过程发生在每个节点上,文档在被添加到索引之前被分发到节点。这是(简化的)Solr 在云/集群模式下运行时发生的情况(ES 也是 IIRC 所做的)。这里还涉及事务日志等,以使其对跨节点故障更具弹性。

所以要么自己分发更新,要么分发更新后的索引。