Scala 碎片编号与在lagom标记事件有何关系?

Scala 碎片编号与在lagom标记事件有何关系?,scala,microservices,sharding,event-sourcing,lagom,Scala,Microservices,Sharding,Event Sourcing,Lagom,问题1。是不是每个事件都有不同的分片数? 问题2。如果有3个碎片,但只有一个事件,那么它会被分成三个碎片中的一个吗?剩下的2块碎片呢,现在不是多余了吗? 第三季度。即使事件在不同的分片中使用不同的标记进行分片,如何维持顺序? 现在,在某个时刻,它们将被合并,然后如何维持顺序?Lagom使用Akka持久性标记来实现日志切分,这允许多个读取端处理器在单个日志上并行工作 其工作原理如下: 持久实体的实例将使用相同的碎片标识符标记其所有事件,以便以正确的顺序读取单个实体的所有事件 来自不同实体的事件可

问题1。是不是每个事件都有不同的分片数?
问题2。如果有3个碎片,但只有一个事件,那么它会被分成三个碎片中的一个吗?剩下的2块碎片呢,现在不是多余了吗?
第三季度。即使事件在不同的分片中使用不同的标记进行分片,如何维持顺序?


现在,在某个时刻,它们将被合并,然后如何维持顺序?

Lagom使用Akka持久性标记来实现日志切分,这允许多个读取端处理器在单个日志上并行工作

其工作原理如下:

  • 持久实体的实例将使用相同的碎片标识符标记其所有事件,以便以正确的顺序读取单个实体的所有事件
  • 来自不同实体的事件可能会无序处理,因为读取端处理器的不同实例可能会处理
    User-A
    的事件和
    User-B
    的事件
  • 如果需要事件的绝对顺序,则不能使用事件分片,而是使用单个标记器。存在的问题是,由于只创建一个实例,因此会降低读取端处理器的吞吐量

        eg. say events are as follows -
    
        UserCreated-3
        ProductAdded-2
        ProductAdded-1
        UserCreated-2
        UserCreated-1
    
        Now it is sharded into two -
    
    In shard -1 say,
        UserCreated-3
        UserCreated-2
        UserCreated-1
    
    In shard-2, say
        ProductAdded-2
        ProductAdded-1