Akka-Cluster模块用于应用程序内的集群。
如果我们有一个设置,在节点上运行的实体参与者(我们可能有数百个参与者分布在节点上)被调度为每1分钟接收一次消息(使用计时器/调度器),那么当托管该参与者的节点优雅地和不优雅地关闭时会发生什么
我们如何确保实体参与者在另一个节点上自动创建。是只在收到第一条消息时创建实体执行元,还是自动创建执行元,而不需要应用程序中的任何逻辑。另外,参与者的调度器发生了什么情况。迁移到其他节点后,是否可以在执行元上自动运行调度程序。注意:到目前为止,我还没有计划使用持久性?但是,对自动实体创建和消息调度具有持久性会有帮助吗
发布于 2021-04-16 03:35:06
如果使用集群分片来管理实体参与者,则可以使用remember entities自动保持实体活动,直到实体自身钝化。在kubernetes或类似的环境中,没有可靠的持久存储附加到实例,这确实需要幕后的Akka持久性。
如果不使用集群分片,那么您可能必须使用持久性实现类似的功能。
请注意,在重新平衡之后,实体参与者的状态不会恢复,除非实体参与者以某种方式持久化(例如,使用Akka持久性将其自身作为事件源)。此状态将包括计时器状态。重新创建实体参与者(最典型的是使用Behaviors.setup (我忘记Java API是否使用该名称)),因此取决于参与者应该如何响应该消息:
https://stackoverflow.com/questions/67110560
复制相似问题