Шардинг кластера Akka.net: невозможно зарегистрировать координатора

Я пытаюсь настроить сегментирование кластера akka.net, создав простой проект.

Макет проекта:

Актеры — библиотека классов, определяющая одного актера и сообщение. Является ссылкой на другие проекты

Входящие — запускает ShardedRegion и является единственным узлом, участвующим в сегментировании кластера. И должен быть тем, кто принимает у себя координатора.

MessageProducer — будет размещать только прокси-сервер shardedregion для отправки сообщений в ProcessorActor.

Маяк — исходный узел

Загруженные изображения показывают, что синглтон координатора не инициализирован и сообщения, отправляемые через прокси-сервер с общим регионом, не доставляются.

Основываясь на сообщении в блоге petabridge, petabridge.com/blog/cluster-sharding-technical-overview-akkadotnet/, я исключил маяк, установив akka.cluster.sharding.role, из участия в шардирование кластера, чтобы на нем не создавался координатор.

Не уверен, что мне не хватает, чтобы заставить это работать.


person technologyblogger    schedule 28.02.2017    source источник
comment
Не могу с собой поделать, но вы могли бы ускорить ответ, вежливо зайдя на gitter.im/akkadotnet/ akka.net .   -  person mwardm    schedule 28.02.2017
comment
@mwardm спасибо за предложение. Попробую это сейчас.   -  person technologyblogger    schedule 28.02.2017


Ответы (1)


На это уже ответили на gitter, но вот tl; dr:

  1. Прокси региона сегмента должен иметь ту же роль, что и соответствующий регион сегмента. В противном случае прокси может не найти координатора сегмента и, следовательно, не сможет найти начальное местоположение сегмента, которому он хочет отправить сообщение.
  2. Метод IMessageExtractor.GetMessage используется для извлечения фактического сообщения, которое будет отправлено сегментированному актору. В примере средство извлечения сообщений использовалось для извлечения строкового свойства из обертывающего сообщения, однако у актера-получателя установлен обработчик Receive для конверта, а не для строки.
person Bartosz Sypytkowski    schedule 02.03.2017