Лагом: количество читаемых боковых сегментов установлено на узел или в пределах всего кластера? - PullRequest
0 голосов
/ 14 мая 2019

Lagom позволяет разбивать процессор на стороне чтения на сегменты для масштабирования обработки событий.

object BlogEvent {
  val NumShards = 20
  val Tag       = AggregateEventTag.sharded[BlogEvent](NumShards)
}

sealed trait BlogEvent extends AggregateEvent[BlogEvent] {
  override def aggregateTag: AggregateEventShards[BlogEvent] = BlogEvent.Tag
}

Скажем, у меня 5 узлов, означает ли это, что общее количество шардов будет 20 x 5 = 100, или общее количество шардов будет 20 во всем кластере?

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

Это общее количество осколков для всего кластера.

0 голосов
/ 31 мая 2019

Скажем, у меня 5 узлов, означает ли это, что общее количество шардов будет 20 x 5 = 100, или общее количество шардов будет 20 во всем кластере?

number_of_shards = 20 * numer_of_processors

Используя ваш пример:

object BlogEvent {
  val NumShards = 20
  val Tag       = AggregateEventTag.sharded[BlogEvent](NumShards)
}

в вашем кластере, независимо от того, большой он или маленький, всегда будет 20 экземпляров каждого процессора на стороне чтения, потребляющегопоток BlogEvent с.Это означает, что если вы создали BlogRSSReadSideProcessor, а также BlogAtomReadSideProcessor и BlogTopicProducer, у вас было бы в общей сложности 60 шардов, каждый из которых потреблял бы определенный тег потока для своих собственных целей (RSS, Atom или передачу в тему).,Это означает, что ваша база данных будет содержать 60 соединений, опрашивающих таблицу Journal.

...