Solr配置:集群单例插件详解
Solr发行版包含一些集群单例插件。可以添加其他插件 - 它们必须实现ClusterSingleton接口。如果插件实现了ConfigurablePlugin接口,配置条目还可以包含一个config元素。
插件配置
集群单例插件可以通过两种方式进行配置,要么使用集群插件API,要么在solr.xml中声明它们。
所有集群插件必须使用相同的方法声明。不可能在solr.xml中声明某些插件并使用集群插件API来管理其他插件。
Solr内置的集群单例插件
Solr包含以下开箱即用的插件。
非活动分片清理器
此插件将定期查找并删除具有INACTIVE分片状态的分片。当分片被拆分时,分片变为INACTIVE,它们包含的文档现在由两个或多个子分片管理。
使用集群插件API进行配置
1 | curl -X POST -H 'Content-type: application/json' -d '{ |
在solr.xml中配置
1 | <clusterSingleton name=".inactive-shard-remover" class="org.apache.solr.cluster.maintenance.InactiveShardRemover"> |
注意: 非活动分片清理器插件配置必须使用预定义名称.inactive-shard-remover
。只能定义一个(或零个)这样的配置。
配置参数
scheduleIntervalSeconds
- 可选参数,默认值:
900
秒 - 此值确定非活动分片清理器的运行频率
ttlSeconds
- 可选参数,默认值:
900
秒 - 此值定义分片必须保持INACTIVE状态的最小时间段,之后才会被考虑删除
maxDeletesPerCycle
- 可选参数,默认值:
20
- 这是非活动分片清理器每次运行时将删除的最大分片数量
- 如果有更多分片可以被删除,它们将在下一个周期中被考虑
总结
集群单例插件为Solr集群提供了强大的自动维护功能。非活动分片清理器插件特别有用,可以自动清理分片拆分后产生的非活动分片,帮助保持集群的整洁。通过合理配置执行间隔、TTL时间和每次删除的最大数量,可以在保证安全的前提下有效地维护集群健康。