首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在节点中断期间恢复akka实体执行元

在节点中断期间恢复akka实体执行元
EN

Stack Overflow用户
提问于 2021-04-15 22:38:25
回答 1查看 59关注 0票数 0

Akka-Cluster模块用于应用程序内的集群。

如果我们有一个设置,在节点上运行的实体参与者(我们可能有数百个参与者分布在节点上)被调度为每1分钟接收一次消息(使用计时器/调度器),那么当托管该参与者的节点优雅地和不优雅地关闭时会发生什么

我们如何确保实体参与者在另一个节点上自动创建。是只在收到第一条消息时创建实体执行元,还是自动创建执行元,而不需要应用程序中的任何逻辑。另外,参与者的调度器发生了什么情况。迁移到其他节点后,是否可以在执行元上自动运行调度程序。注意:到目前为止,我还没有计划使用持久性?但是,对自动实体创建和消息调度具有持久性会有帮助吗

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 03:35:06

如果使用集群分片来管理实体参与者,则可以使用remember entities自动保持实体活动,直到实体自身钝化。在kubernetes或类似的环境中,没有可靠的持久存储附加到实例,这确实需要幕后的Akka持久性。

如果不使用集群分片,那么您可能必须使用持久性实现类似的功能。

请注意,在重新平衡之后,实体参与者的状态不会恢复,除非实体参与者以某种方式持久化(例如,使用Akka持久性将其自身作为事件源)。此状态将包括计时器状态。重新创建实体参与者(最典型的是使用Behaviors.setup (我忘记Java API是否使用该名称)),因此取决于参与者应该如何响应该消息:

  • 如果“每分钟”意味着“每分钟不超过一次”,则实体执行元应该作为其设置的一部分开始每一分钟的调度;如果崩溃/重新平衡发生在最后一条调度消息的59秒之后,则将存在间隙,但如果消息导致轮询某些外部资源,则该间隙最终可能无关紧要。

  • 如果“每分钟”意味着“至少每分钟一次”,那么实体执行元可以立即将计划的消息发送给自己并设置计时器。然后,如果崩溃/重新平衡发生在最后一个计划的消息之后,则计划的消息的影响之间的间隔将比正常时间短,但不会有几分钟的间隔。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67110560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档