Solr配置:集群单例插件详解

Solr配置:集群单例插件详解

Solr发行版包含一些集群单例插件。可以添加其他插件 - 它们必须实现ClusterSingleton接口。如果插件实现了ConfigurablePlugin接口,配置条目还可以包含一个config元素。

插件配置

集群单例插件可以通过两种方式进行配置,要么使用集群插件API,要么在solr.xml中声明它们。

所有集群插件必须使用相同的方法声明。不可能在solr.xml中声明某些插件并使用集群插件API来管理其他插件。

Solr内置的集群单例插件

Solr包含以下开箱即用的插件。

非活动分片清理器

此插件将定期查找并删除具有INACTIVE分片状态的分片。当分片被拆分时,分片变为INACTIVE,它们包含的文档现在由两个或多个子分片管理。

使用集群插件API进行配置

1
2
3
4
5
6
7
8
9
10
11
curl -X POST -H 'Content-type: application/json' -d '{
"add":{
"name": ".inactive-shard-remover",
"class": "org.apache.solr.cluster.maintenance.InactiveShardRemover",
"config": {
"scheduleIntervalSeconds": 3600,
"ttlSeconds": 1800,
"maxDeletesPerCycle": 20
}
}}'
http://localhost:8983/api/cluster/plugin

在solr.xml中配置

1
2
3
4
5
<clusterSingleton name=".inactive-shard-remover" class="org.apache.solr.cluster.maintenance.InactiveShardRemover">
<long name="scheduleIntervalSeconds">3600</long>
<long name="ttlSeconds">1800</long>
<int name="maxDeletesPerCycle">20</int>
</clusterSingleton>

注意: 非活动分片清理器插件配置必须使用预定义名称.inactive-shard-remover。只能定义一个(或零个)这样的配置。

配置参数

scheduleIntervalSeconds

  • 可选参数,默认值:900
  • 此值确定非活动分片清理器的运行频率

ttlSeconds

  • 可选参数,默认值:900
  • 此值定义分片必须保持INACTIVE状态的最小时间段,之后才会被考虑删除

maxDeletesPerCycle

  • 可选参数,默认值:20
  • 这是非活动分片清理器每次运行时将删除的最大分片数量
  • 如果有更多分片可以被删除,它们将在下一个周期中被考虑

总结

集群单例插件为Solr集群提供了强大的自动维护功能。非活动分片清理器插件特别有用,可以自动清理分片拆分后产生的非活动分片,帮助保持集群的整洁。通过合理配置执行间隔、TTL时间和每次删除的最大数量,可以在保证安全的前提下有效地维护集群健康。

© 2025 Solr Community of China All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero