我正在AWS中运行solrcloud集群。有时,在搜索次数很多的时期,我需要更多实例。
所以我试图找到一种自动缩放Solr群集的方法。
我添加更多节点的过程是增加自动伸缩组上的所需数量。几分钟后,我有了新节点。然后,我运行此脚本以添加更多副本。
#!/usr/bin/env bash
set -euo pipefail
REPLICAS=2
res=$(curl -s localhost:8983/api/cluster/configs?omitHeader=true | jq '.configSets')
for config in $(echo ${res} | jq -r '.[]' | grep -iE "lemma|entry"); do
wget "localhost:8983/solr/admin/collections?action=ADDREPLICA&collection=${config}&shard=shard1&nrtReplicas=${REPLICAS}&type=nrt" -O /dev/null
done
脚本为新节点中的所有分片添加副本。
当我想缩小比例时,问题就来了。我想删除X个节点。我发现的唯一方法是识别节点名称,然后运行如下脚本:
NODE=core_nodeXX
res=$(curl -s localhost:8983/api/cluster/configs?omitHeader=true | jq '.configSets')
for config in $(echo ${res} | jq -r '.[]' | grep -iE "lemma|entry"); do
wget "localhost:8983/solr/admin/collections?action=DELETEREPLICA&collection=${config}&shard=shard1&replica=${NODE}" -O /dev/null
done
我正在尝试找到一种更好的方法,以便可以使用lambda函数自动缩放Solr集群。放大很容易,缩小就是问题所在!