使用Solr 7.3.1版 从3个节点开始:
我创建了一个这样的集合:
wget "localhost:8983/solr/admin/collections?action=CREATE&autoAddReplicas=true&collection.configName=my_col_config&maxShardsPerNode=1&name=my_col&numShards=1&replicationFactor=3&router.name=compositeId&wt=json" -O /dev/null
通过这种方式,我在每个节点上都有一个副本。
目标:
我知道应该可以使用新的AutoScalling API,但我很难找到正确的语法。 API是非常新的,我只能找到文档。它还不错,但我想念更多的例子。
这就是它今天的样子。每个小碎片都有一个与节点数匹配的复制因子。现在有3个节点。
This video昨天(2018-06-13)上传,大约30分钟。在视频中有一个Solr.HttpTriggerListener示例,可用于调用任何类型的服务,例如AWS Lamda来添加新节点。
答案 0 :(得分:4)
简短的回答是,您的目标今天无法实现(直到Solr 7.4)。
NodeAddedTrigger仅将副本从其他节点移动到新节点,以尝试平衡群集。它不支持添加新副本。我已经打开SOLR-12715来添加此功能。
类似地,NodeLostTrigger在其他节点上添加新副本以替换丢失的节点上的副本。它也不支持仅从集群状态删除副本。我已经打开SOLR-12716来解决该问题。我希望发布Solr 7.5中的两个增强功能。
第三个目标:
每个节点上每个分片只有一个副本。
要实现此目的,“ Limit Replica Placement”示例中给出的策略规则就足够了。但是,查看您发布的屏幕快照,实际上是指(收藏夹,碎片)对,今天不支持该对。您将需要类似以下的策略规则(以下操作无效,因为不支持collection:#EACH):
{"replica": "<2", "collection": "#EACH", "shard": "#EACH", "node": "#ANY"}
我已经打开SOLR-12717来添加此功能。
感谢您提供这些出色的用例。我建议在solr-user mailing list上问诸如此类的问题,因为不是很多Solr开发人员都经常使用Stackoverflow。我只能找到此问题,因为它已发布在docker-solr项目上。