我正在使用Lagom的永久实体,并实现了对Cassandra的支持,并保存了进行查询的状态。因此,想要理解的是,持久实体还是参与者吗?意味着一次只能处理一个事件/命令?事件也是消息“持久实体”句柄吗? 我找不到有关以下方面的大量文档:
如果我们使用的模型在一段时间后删除了参与者,那么该参与者将不得不再次读取所有事件以处理另一个请求?这会增加延迟吗?
答案 0 :(得分:2)
持久性实体也是参与者吗?意味着一次只能处理一个事件/命令?
我不会这样问这个问题;参与者 do 执行同步消息处理,但是执行同步消息处理的某些事物并不表示它是参与者。
现在语义已经不合逻辑了,我们可以解决这个问题... PersistentEntity
从技术上来说是not actors ...但是,PersistentEntityRegistry
s will create就是{{ 3}}。
- 每个实体创建后是否都保留在内存中?
根据该Akka持久性快照(请参阅PersistentActor
)机制,实体将持久存储在您使用的任何存储中。
- 如果我们采用的模型是在一段时间后删除了actor的,那么... actor是否必须再次读取所有事件以处理另一个请求?
同样,快照将大有帮助。
- 如果通过命令/查询将商品添加到购物车中,如何确保同一物品不会两次添加到购物车中?
您可以了解有关Akka演员here的传递语义的更多信息。
答案 1 :(得分:1)