Lagom:每个节点或整个集群中是否设置了读取侧分片的数量?

时间:2019-05-14 09:53:52

标签: scala event-sourcing lagom

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 个答案:

答案 0 :(得分:2)

这是整个集群的分片总数。

答案 1 :(得分:0)

  

比方说,我有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流。这意味着,如果您创建了BlogRSSReadSideProcessorBlogAtomReadSideProcessorBlogTopicProducer,则总共会有60个分片,每个分片都出于其自身的目的而使用流的特定标记(RSS,Atom或发出主题)。这意味着您的数据库将拥有60个连接,轮询Journal表。