Несколько экземпляров Cassandra на каждом узле в кластере

Возможно ли иметь кластер в Cassandra, где на каждом сервере работает несколько экземпляров Cassandra (каждый экземпляр является частью одного и того же кластера).

Я знаю, что если в кластере есть один сервер, то на нем можно запустить несколько экземпляров Cassandra, но также возможно иметь несколько таких серверов в кластере. Если да, то как будет выглядеть конфигурация (адрес прослушивания, порты и т. д.)?

Даже если бы это было возможно, я понимаю, что может вообще не быть никаких преимуществ в производительности, просто хотел знать, возможно ли это теоретически.


person Vishal Sharma    schedule 10.05.2018    source источник


Ответы (2)


Да, это возможно и такая настройка часто используется для тестирования, например, с помощью CCM, хотя и создает несколько интерфейсов на петле (127.0.0.2, ...). DataStax Enterprise также имеет так называемые многоэкземплярные .

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

Но зачем вам это нужно? Пока у вас не будет действительно мощной машины с большим количеством оперативной памяти и несколькими твердотельными накопителями, это не принесет вам дополнительной производительности.

person Alex Ott    schedule 10.05.2018
comment
Голосуйте от меня; именно так, как я бы это сформулировал (с предупреждением). CCM прошел долгий путь и в основном делает именно то, о чем он просит. - person Aaron; 10.05.2018
comment
Создает ли CCM несколько экземпляров на нескольких узлах (разных физических серверах), работающих вместе в одном кластере, или он создает несколько экземпляров только на одном узле? - person Vishal Sharma; 14.05.2018
comment
CCM используется для развертывания нескольких экземпляров на одном хосте, но я упомянул его, потому что вы можете использовать аналогичный подход. Но я бы порекомендовал тщательно подумать об использовании нескольких экземпляров в одном поле. - person Alex Ott; 14.05.2018
comment
Я читал, как настроить несколько экземпляров на одном хосте, но я не смог понять, как это сделать для нескольких узлов (каков будет адрес прослушивания, широковещательный адрес для каждого из экземпляров?). На самом деле, мы хотим попробовать это в качестве эксперимента, поскольку мы думали, что наша оперативная память недоиспользуется в случае одного экземпляра на узел. - person Vishal Sharma; 14.05.2018
comment
В настоящее время у нас есть кластер из 2 узлов, каждый из которых имеет более 150 ГБ оперативной памяти и пару магнитных дисков в каждом из них. В настоящее время наш проект находится на начальной стадии, поэтому мы просто изучаем несколько вариантов реализации, позже количество узлов может увеличиться, и мы также можем использовать SSD. - person Vishal Sharma; 14.05.2018
comment
Кажется, что конфигурации не очень просты, как в случае запуска нескольких экземпляров на одном узле. Я предполагаю, что мне придется настроить несколько IP-адресов на одном сетевом интерфейсе. - person Vishal Sharma; 14.05.2018

Да, возможно, даже я работал с 5 экземплярами, работающими на одном сервере в производственном кластере. Поверьте мне, он все еще работает, но общие проблемы, с которыми я сталкивался, — это постоянно высокий GC, отброшенные мутации и высокая задержка, поэтому, конечно, иметь такую ​​​​настройку нехорошо. но для ответа на ваши вопросы да, это возможно и может быть в производстве.

person Payal    schedule 10.05.2018
comment
Сколько узлов у вас было? Я имею в виду физически разные узлы. - person Vishal Sharma; 14.05.2018
comment
У меня есть 2 центра обработки данных с 22 узлами в каждом и с 5 JVM, работающими на каждом узле. - person Payal; 14.05.2018
comment
Было бы очень полезно, если бы вы могли расширить свой ответ, указав, как именно вы настроили файл YAML, в основном это listen_address, Broad_rpc_address, порт хранения и native_transport_port. - person Vishal Sharma; 14.05.2018