【详解】Solr4.4主从模式配置

举报
皮牙子抓饭 发表于 2025/08/13 20:09:58 2025/08/13
【摘要】 Solr4.4主从模式配置Apache Solr 是一个高性能的全文搜索引擎服务器。它是一个独立的企业级搜索应用,使用Java开发,基于Lucene的全文搜索服务。Solr提供了比Lucene更丰富的查询语言,并且实现了强大的全文检索功能。在实际应用中,为了提高系统的可用性和数据的一致性,通常会采用主从模式进行部署。本文将详细介绍如何在Solr 4.4版本中配置主从模式,以实现数据的同步和高...

Solr4.4主从模式配置

Apache Solr 是一个高性能的全文搜索引擎服务器。它是一个独立的企业级搜索应用,使用Java开发,基于Lucene的全文搜索服务。Solr提供了比Lucene更丰富的查询语言,并且实现了强大的全文检索功能。在实际应用中,为了提高系统的可用性和数据的一致性,通常会采用主从模式进行部署。

本文将详细介绍如何在Solr 4.4版本中配置主从模式,以实现数据的同步和高可用。

环境准备

  • 操作系统:Linux (CentOS 7)
  • Java版本:1.8
  • Solr版本:4.4
  • 主节点:192.168.1.100
  • 从节点:192.168.1.101, 192.168.1.102

安装Solr

首先,在所有节点上安装Solr 4.4。这里假设你已经下载了Solr 4.4的压缩包并解压到指定目录。

解压Solr

tar -zxvf solr-4.4.0.tgz -C /opt/

配置环境变量

编辑​​~/.bashrc​​文件,添加Solr的环境变量:

export SOLR_HOME=/opt/solr-4.4.0
export PATH=$PATH:$SOLR_HOME/bin

使配置生效:

source ~/.bashrc

启动Solr

启动Solr服务:

cd $SOLR_HOME/example
java -jar start.jar

主节点配置

创建核心

在主节点上创建一个核心(core),例如名为​​mycore​​:

cd $SOLR_HOME/example/solr
mkdir mycore
cp -r collection1/conf mycore/

修改solrconfig.xml

编辑​​mycore/conf/solrconfig.xml​​,添加或修改以下内容来启用主节点的功能:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
  </lst>
</requestHandler>

重启Solr

重启Solr以使配置生效:

cd $SOLR_HOME/example
java -jar start.jar

从节点配置

创建核心

在每个从节点上创建与主节点相同的核心:

cd $SOLR_HOME/example/solr
mkdir mycore
cp -r collection1/conf mycore/

修改solrconfig.xml

编辑​​mycore/conf/solrconfig.xml​​,添加或修改以下内容来配置从节点:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="slave">
    <str name="masterUrl">http://192.168.1.100:8983/solr/mycore/replication</str>
    <str name="pollInterval">00:00:60</str>
  </lst>
</requestHandler>

重启Solr

重启每个从节点上的Solr服务:

cd $SOLR_HOME/example
java -jar start.jar

测试主从同步

  1. 在主节点上索引一些文档。
  2. 访问从节点的管理界面,检查是否成功同步了主节点的数据。

这种配置不仅提高了系统的可用性,还确保了数据的一致性。对于生产环境中的大规模应用,可以考虑进一步优化和扩展,如增加更多的从节点、配置负载均衡等。Apache Solr 是一个高性能的全文搜索引擎服务器,支持分布式搜索和索引复制等功能。在 Solr 4.4 版本中,主从(Master-Slave)模式是一种常见的部署方式,用于实现数据的高可用性和负载均衡。在这种模式下,主节点负责处理所有的更新请求,而从节点则定期从主节点拉取最新的索引数据,并处理查询请求。

下面是一个基于 Solr 4.4 的主从模式配置的示例:

1. 环境准备

假设你有三台机器:

  • 主节点:​​192.168.1.100​
  • 从节点1:​​192.168.1.101​
  • 从节点2:​​192.168.1.102​

每台机器上都安装了 Solr 4.4,并且 Solr 已经启动并运行在默认端口 ​​8983​​。

2. 配置主节点

编辑主节点的 ​​solrconfig.xml​​ 文件,通常位于 ​​solr/collection1/conf/solrconfig.xml​​。

<requestHandler name="/replication" class="solr.ReplicationHandler">
  <lst name="master">
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
    <str name="confFiles">schema.xml,solrconfig.xml</str>
  </lst>
</requestHandler>


3. 配置从节点

编辑从节点的 ​​solrconfig.xml​​ 文件,同样位于 ​​solr/collection1/conf/solrconfig.xml​​。

从节点1配置
<requestHandler name="/replication" class="solr.ReplicationHandler">
  <lst name="slave">
    <str name="masterUrl">http://192.168.1.100:8983/solr/collection1/replication</str>
    <str name="pollInterval">00:00:60</str> <!-- 每60秒检查一次更新 -->
  </lst>
</requestHandler>
从节点2配置
<requestHandler name="/replication" class="solr.ReplicationHandler">
  <lst name="slave">
    <str name="masterUrl">http://192.168.1.100:8983/solr/collection1/replication</str>
    <str name="pollInterval">00:00:60</str> <!-- 每60秒检查一次更新 -->
  </lst>
</requestHandler>

4. 启动 Solr 实例

确保所有节点上的 Solr 实例都已启动。你可以使用以下命令启动 Solr:

bin/solr start -p 8983

5. 测试主从同步

  1. 在主节点上执行一些索引操作,例如添加文档:
curl "http://192.168.1.100:8983/solr/collection1/update?commit=true" -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">1</field><field name="title">Test Document</field></doc></add>'
  1. 等待一段时间(例如60秒),然后在从节点上查询文档:
curl "http://192.168.1.101:8983/solr/collection1/select?q=id:1"

如果配置正确,你应该能够看到从节点上已经同步了主节点的数据。

6. 监控和维护

你可以通过 Solr 的管理界面或 API 来监控主从同步的状态。例如,访问主节点的 ​​/replication​​ 路径可以查看同步状态:

curl "http://192.168.1.100:8983/solr/collection1/replication?command=details"

Solr 支持主从(Master-Slave)复制模式,这种模式下,主节点负责处理所有的写操作(如添加、删除和更新文档),而从节点则定期从主节点同步数据,以提供读取服务。

在 Solr 4.4 版本中,配置主从模式主要涉及以下几个步骤:

1. 配置主节点

a. 修改 ​​solrconfig.xml​

在主节点的 ​​solrconfig.xml​​ 文件中,需要开启复制功能,并指定一些必要的参数。以下是一些关键配置示例:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
    <str name="confFiles">schema.xml,solrconfig.xml</str>
  </lst>
</requestHandler>
  • ​replicateAfter​​​: 指定在哪些情况下触发复制,可以是 ​​commit​​​(提交后)、​​startup​​(启动时)等。
  • ​confFiles​​: 指定需要复制的配置文件列表。
b. 启动主节点

启动主节点时,确保它能够正常运行并监听网络请求。

2. 配置从节点

a. 修改 ​​solrconfig.xml​

在从节点的 ​​solrconfig.xml​​​ 文件中,同样需要配置 ​​/replication​​ 请求处理器,但这次是为了配置从节点的行为。示例如下:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="slave">
    <str name="masterUrl">http://master-node:8983/solr/your-core-name</str>
    <str name="pollInterval">00:00:60</str>
  </lst>
</requestHandler>
  • ​masterUrl​​: 主节点的 URL 地址。
  • ​pollInterval​​​: 从节点定期检查主节点是否有新数据的时间间隔,格式为 ​​HH:mm:ss​​。
b. 启动从节点

启动从节点时,确保它能够访问到主节点,并且能够正常接收和处理复制的数据。

3. 测试主从复制

a. 在主节点上进行索引操作

在主节点上添加或更新一些文档,然后执行提交操作:

curl 'http://master-node:8983/solr/your-core-name/update?commit=true' -H 'Content-Type: text/xml' --data-binary '<add><doc><field name="id">1</field><field name="name">Test Document</field></doc></add>'
b. 检查从节点

等待一段时间(根据 ​​pollInterval​​ 的设置),然后在从节点上查询刚刚添加的文档,验证是否已经成功复制:

curl 'http://slave-node:8983/solr/your-core-name/select?q=id:1'

如果一切配置正确,从节点应该能够返回与主节点相同的文档。

注意事项

  • 确保主节点和从节点之间的网络连接畅通。
  • 考虑使用负载均衡器来分发读请求,提高系统的可用性和性能。
  • 监控主从复制的状态,确保数据的一致性。

通过以上步骤,你可以在 Solr 4.4 中成功配置主从复制模式。这将有助于提高系统的可靠性和扩展性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。