Как удалить узел Solr Cloud - PullRequest
0 голосов
/ 07 июня 2019

Я запускаю кластер solrcloud в AWS.Иногда мне нужно больше экземпляров в периоды, когда происходит много поисков.

Поэтому я пытаюсь найти способ автоматического масштабирования кластера 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

Я пытаюсь найти лучший способ, чтобы я мог автоматически масштабировать кластер Solr с помощью лямбда-функции.Увеличивать легко, уменьшать - вот в чем вопрос!

...