Акка Кластер Шардинг - Как проверить - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу протестировать функцию, которая в какой-то момент запрашивает EventSourcedBehaviorWithEnforcedReplies с использованием ClusterSharing

Я подготавливаю ClusterSharding следующим образом:

  ClusterSharding.get(testKit.system()).init(
    Entity.of(
        ENTITY_TYPE_KEY,
        entityContext -> new Entity(entityContext.getEntityId())));

Функция отправляет команду:

CompletionStage<ActorAnswer> promisedAnswer = sharding
    .entityRefFor(ENTITY_TYPE_KEY, identifier)
    .ask(CommandToExecute::new, ASK_TIMEOUT)

CompletionStage никогда не выполняется ...

Чего мне не хватает?

1 Ответ

0 голосов
/ 01 мая 2020

После того же исследования

1) проверьте, что в вашем application-test.conf

akka {
  actor {
    provider = cluster
  }
}

2) Необходимо создать кластер и присоединиться к кластеру (самостоятельное соединение) - проще всего найдено было программно

Cluster cluster = Cluster.get(testKit.system());
cluster.manager().tell(Join.create(cluster.selfMember().address()));

3) Тогда мы можем говорить о разбиении кластера:)

  ClusterSharding.get(testKit.system()).init(
  clusterSharding.init(
    Entity.of(ENTITY_TYPE_KEY, entityContext -> new Entity(entityContext.getEntityId())));
...