Участник в Hazelcast Map удаляется при добавлении нового узла кластера - PullRequest
0 голосов
/ 30 ноября 2018

Я использую Hazelcast версии 3.9.1, и при попытке добавить новый узел многие участники карты удаляются.Мы используем Обнаружение членов по TCP и добавляем все IP-адреса в новом узле, а затем перезапускаем службу Hazelcast.В чем причина удаления члена карты?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Как сказал Вайлднез в своем ответе, добавление нового узла вызовет изменение баланса;Таким образом, хотя записи на карте могут быть удалены с карты определенного узла, они останутся в кластере.

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

Если вы добавите второй узел, то примерно 50% картыЗаписи будут перенесены в новый узел.Для записей, которые переносятся, их резервные копии будут добавляться на первом узле, а для записей карты, которые не переносятся, их резервные копии будут создаваться на втором узле.

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

Добавление узла никогда не должно приводить к удалению записей карты из кластера, но это приведет к миграции записей между элементами кластера.

0 голосов
/ 30 ноября 2018

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

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

Если резервные копии не включены и вы перезапускаете кластер, данные будут потеряны, поскольку данные будут сохранены в памяти.Чтобы предотвратить потерю данных, включите резервное копирование (по умолчанию включено 1 синхронное резервное копирование) и не выключайте сразу весь кластер.

...