Объекты не перемещаются автоматически на присоединенные узлы - PullRequest
0 голосов
/ 30 октября 2018

Вопрос по шардингу. Должны ли объекты перемещаться автоматически при присоединении нового узла? Имеет одноэлементного субъекта, который отправляет сообщение всем сущностям в своем обработчике onRecoveryCompleted, и все сущности в конечном итоге работают на том же узле, что и синглтон (OK). После присоединения другого узла половина объектов не перемещается на него (как я ожидаю), но, если Singleton отправляет сообщение новому объекту, он создается на втором узле (ОК), поэтому В общем, похоже, что шардинг работает.

Ответы [ 2 ]

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

Когда вы добавляете новый узел с областью шарда, akka проверит the difference between most and least number of allocated shards среди всех областей шарда в кластере. Если разница больше akka.cluster.sharding.least-shard-allocation-strategy.rebalance-threshold (см. документация по конфигурации ), akka начнет перебалансировку осколков. Когда шард перезапускается из-за перебаланса и для akka.cluster.sharding.remember-entities устанавливается значение on, шард перезапускает свои сущности (по умолчанию akka.cluster.sharding.remember-entities установлен на off и все шарды теряют все свои сущности после перебалансировки).

Таким образом, если у вас есть один узел с областью осколков, имеющий 20 осколков, и вы добавляете новый узел с областью осколков и разницей между числом осколков старого узла (20) и номером осколка нового узла (0) больше, чем * Значение 1011 * и значение akka.cluster.sharding.remember-entities, установленное на on, akka перенастроит 10 осколков в новый узел, и эти осколки перезапустят свои сущности после перебалансировки.

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

Вероятно, это связано с вашей конфигурацией (или конфигурацией по умолчанию), попробуйте изменить свойства akka.cluster.sharding.rebalance-interval (по умолчанию 10 секунд) и, скорее всего, akka.cluster.sharding.least-shard-allocation-strategy.rebalance-threshold, чтобы адаптировать их к ожидаемому сценарию использования. Дополнительную информацию можно найти в документации по конфигурации , а также в разделе Перебалансировка осколков .

...