Solr AutoScaling - добавление реплик на новые узлы - PullRequest
0 голосов
/ 13 июня 2018

Использование 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 узла.enter image description here

Это видео было загружено вчера (2018-06-13) и около 30 мин.в видео есть пример Solr.HttpTriggerListener, который можно использовать для вызова любого вида сервиса, например AWS Lamda для добавления новых узлов.

enter image description here

1 Ответ

0 голосов
/ 29 августа 2018

Краткий ответ: сегодня ваши цели не достижимы (до Solr 7.4).

NodeAddedTrigger перемещает реплики только с других узлов на новый, пытаясь сбалансировать кластер.Он не поддерживает добавление новых реплик.Я открыл SOLR-12715 , чтобы добавить эту функцию.

Точно так же NodeLostTrigger добавляет новые реплики на другие узлы, чтобы заменить те на потерянном узле.Он также не поддерживает просто удаление реплик из состояния кластера.Я открыл SOLR-12716 для решения этой проблемы.Я надеюсь выпустить оба усовершенствования в Solr 7.5.

Что касается третьей цели:

Только одна реплика для каждого шарда на каждом узле.

Для этого должно быть достаточно правила политики, указанного в примере " Limit Replica Placement ".Однако, глядя на скриншот, который вы разместили, вы на самом деле имеете в виду пару (collection, shard), которая сегодня не поддерживается.Вам потребуется правило политики, подобное следующему (следующее не работает, потому что коллекция: #EACH не поддерживается):

{"replica": "<2", "collection": "#EACH", "shard": "#EACH", "node": "#ANY"}

Я открыл SOLR-12717 , чтобы добавить эту функцию.

Спасибо за эти отличные варианты использования.Я рекомендую задавать подобные вопросы в списке рассылки solr-user , потому что не так много разработчиков Solr часто используют Stackoverflow.Я нашел этот вопрос только потому, что он был опубликован в проекте docker-solr .

...