Как автоматически масштабировать кластер Cassandra в AWS или как динамически подключаться к кластеру в зависимости от нагрузки - PullRequest
0 голосов
/ 13 апреля 2019

Я пытался автоматически масштабировать 3-узловый кластер Cassandra с фактором репликации 3 и уровнем согласованности 1 в экземплярах Amazon EC2.

Какие шаги мне нужно выполнить для динамического добавления / удаления узлов в cluser в зависимости от нагрузки на приложение?

1 Ответ

1 голос
/ 16 апреля 2019

К сожалению, масштабирование вверх и вниз в ответ на текущую загрузку не является простым, и если у вас есть кластер с большим объемом данных, это будет невозможно:

  • вы не можете добавить несколько узлов одновременно в кластер, все операции должны быть последовательными.
  • добавление или удаление узла потребует потоковой передачи данных в или из узел; это будет зависеть от размера ваших данных, а также от Тип экземпляра EC2, который вы используете (для ограничения пропускной способности сети); Кроме того, будут различия, если вы используете экземпляр хранилище или EBS (EBS ограничит вас в IOPS)
  • Вы упомянули, что используете AWS и коэффициент репликации 3, Вы также используете разные зоны доступности (AZ)? если ты, EC2Snitch будет работать, чтобы гарантировать, что информация сбалансирована между ними, чтобы быть устойчивым, когда вы расширяете и вниз вам нужно будет сохранять равномерное распределение между AZ.
  • Операции масштабирования вызовут перераспределение в распределении из токенов, как только он будет завершен, вам нужно будет очистить (nodetool cleanup), чтобы удалить данные, которые больше не используются узел; эта операция также займет время. Это важно для имейте в виду, если вы расширяете, потому что у вас заканчивается пространство.

В нашем случае использования мы получаем хорошие результаты, используя упреждающий подход, мы разработали агрессивную стратегию оповещения / мониторинга для раннего обнаружения, чтобы мы могли начать операции масштабирования до того, как это скажется на производительности. Если ваше приложение или сценарий использования имеет предсказуемую схему использования, это также может помочь вам предпринять действия при подготовке периодов высокой рабочей нагрузки.

...