Akka Lagom是持久实体参与者吗?/演员模型

Akka Lagom是持久实体参与者吗?/演员模型,akka,actor,lagom,Akka,Actor,Lagom,我使用Lagom的Persistent实体和读端Cassandra支持来实现、保存用于读端查询的状态。那么试着去理解,持久实体也是参与者吗?意味着一次只处理一个事件/命令?事件是否也是“持久实体”处理的消息? 我找不到关于以下内容的太多文档: 每个实体在创建后是否都在内存中持久化?例如:如果用户是一个实体,并且在创建新用户时,如果用户对象(实体)被持久化在内存中,那么假设几乎80%的用户长期脱机,该模型在扩展方面如何有效 如果我们看一个模型,在这个模型中,参与者在超时后被移除。。。参与者必须再

我使用Lagom的Persistent实体和读端Cassandra支持来实现、保存用于读端查询的状态。那么试着去理解,持久实体也是参与者吗?意味着一次只处理一个事件/命令?事件是否也是“持久实体”处理的消息? 我找不到关于以下内容的太多文档:

  • 每个实体在创建后是否都在内存中持久化?例如:如果用户是一个实体,并且在创建新用户时,如果用户对象(实体)被持久化在内存中,那么假设几乎80%的用户长期脱机,该模型在扩展方面如何有效
  • 如果我们看一个模型,在这个模型中,参与者在超时后被移除。。。参与者必须再次读取所有事件才能处理另一个请求吗?这不会增加延迟吗

  • 我看到的大多数例子都与实现购物车/类似的东西有关。如果向购物车添加商品是通过命令/查询处理的,如何确保同一商品不会两次添加到购物车?因为阅读/更新依赖于不同的观点/真相来源。(我知道这可能发生在任何有并发用户的应用程序中,但这种情况似乎经常可以通过使用Actors实现)

  • 在可配置的不活动时间之后,将从内存中删除持久化实体
  • 通过读取最近的快照及其之后的每个事件,将持久化实体再次加载到内存中
  • 可以通过比较从事件日志(真相来源)构建的持久实体状态来验证该命令。您可以在内部状态下存储产品,并知道何时再次添加产品。然后,您可以通过不发出事件并返回错误来拒绝此命令
  • 在可配置的不活动时间之后,将从内存中删除持久化实体
  • 通过读取最近的快照及其之后的每个事件,将持久化实体再次加载到内存中
  • 可以通过比较从事件日志(真相来源)构建的持久实体状态来验证该命令。您可以在内部状态下存储产品,并知道何时再次添加产品。然后,您可以通过不发出事件并返回错误来拒绝此命令
  • 持久实体也是参与者吗?意味着一次只处理一个事件/命令

    我不会这样问这个问题;参与者确实执行同步消息处理,但执行同步消息处理的东西并不意味着它是参与者

    既然语义学已经过时了,我们可以解决这个问题<代码>持久性s在技术上是。。。然而,这是一个非常重要的问题

    • 每个实体在创建后是否都在内存中持久化
    根据Akka持久性快照(请参阅)机制,实体将持久化到您使用的任何存储中

    • 如果我们看一个模型,在这个模型中,参与者在超时后被移除。。。参与者必须再次读取所有事件才能处理另一个请求吗
    同样,快照也会有很大帮助

    • 如果向购物车添加商品是通过命令/查询处理的,如何确保同一商品不会两次添加到购物车
    您可以阅读更多关于Akka参与者的交付语义的信息

    持久实体也是参与者吗?意味着一次只处理一个事件/命令

    我不会这样问这个问题;参与者确实执行同步消息处理,但执行同步消息处理的东西并不意味着它是参与者

    既然语义学已经过时了,我们可以解决这个问题<代码>持久性s在技术上是。。。然而,这是一个非常重要的问题

    • 每个实体在创建后是否都在内存中持久化
    根据Akka持久性快照(请参阅)机制,实体将持久化到您使用的任何存储中

    • 如果我们看一个模型,在这个模型中,参与者在超时后被移除。。。参与者必须再次读取所有事件才能处理另一个请求吗
    同样,快照也会有很大帮助

    • 如果向购物车添加商品是通过命令/查询处理的,如何确保同一商品不会两次添加到购物车
    您可以阅读更多关于Akka参与者的交付语义的信息