当前位置: 首页 > 知识库问答 >
问题:

Akka集群调度器-当节点关闭时会发生什么

单修德
2023-03-14

我想在我的集群中有一个调度器,它会在一段时间后发送一些消息。从我看到的调度器是每个actorsystem,从我的测试只针对本地actor系统。不是集群那一个。因此,如果在一个节点上调度某个任务,如果它被关闭,那么所有调度的任务都将被丢弃。

如果我创建一个集群单例来负责调度,那么已经制定的调度是否可以在其他节点上重新创建?还是我应该将它作为一个具有已经创建的调度元数据结构的持久执行元,并在预启动阶段重新调度所有被持久化的内容?

共有1个答案

易风华
2023-03-14

如果先前所在的节点被关闭或离开集群,则集群单例将在另一个节点上重生。

那个轮回将从一个干净的石板开始:它不会记得它的“前世今生”。

但是,如果它是一个持久执行元(或者,等价地,它的行为是Akka类型的EventSourceBehavior),它将在启动时从事件流(和/或快照)恢复其状态。对于持久性执行元,这通常不需要做任何事情prestart:持久性实现将负责重放事件。

根据调度的任务数量以及如果希望在集群完全重新启动时丢弃调度,可以使用Akka分布式数据将调度元数据分布在集群周围(具有可调的一致性),然后让集群单例调度执行元读取该元数据。

 类似资料:
  • 问题内容: 在Akka actor中,如何找到群集的节点?即,本地节点认为当前可访问的节点。 谢谢-丹尼尔 问题答案: 您实际上不需要订阅或。您可以只访问集群扩展的成员,例如,

  • 我有两个Kafka代理:server1:9092和server2:9092我正在使用Java客户端向这个集群发送消息,代码如下: 当其中一个代理关闭时,Test在某些情况下会抛出此异常(在此异常示例中'server1'已关闭): 2015-11-02 17:59:29138警告[org.apache.kafka.common.network.Selector]服务器1/40.35.250.227

  • 如果在java中执行关闭挂钩期间引发了未捕获的异常,jvm是否会立即退出,而不运行其余已注册的关闭挂钩(如果有)?从javadocs: 未捕获的异常通过调用线程ThreadGroup对象的uncaughtException方法在关闭钩子中处理,就像在任何其他线程中一样。此方法的默认实现将异常的堆栈跟踪打印到System.err并终止线程;它不会导致虚拟机退出或停止。 似乎其他关机挂钩应该运行...

  • 我在yarn cluster上运行的spark应用程序崩溃了,我正在试图确定根本原因。在我使用从yarn获得的日志中,我看到在块获取期间有一大堆连接被拒绝,还有一个内存不足错误。很难说出根本原因是什么。我的问题是当容器因为OutOfMemory异常而被杀死时会发生什么。因此,在容器日志中,我看到这是如何在容器上启动执行器的 我还看到许多。在应用程序崩溃之前,似乎有多个这样的问题。spark重试一个

  • 本文向大家介绍RabbitMQ 集群中唯一一个磁盘节点崩溃了会发生什么情况?相关面试题,主要包含被问及RabbitMQ 集群中唯一一个磁盘节点崩溃了会发生什么情况?时的应答技巧和注意事项,需要的朋友参考一下 如果唯一磁盘的磁盘节点崩溃了, 不能进行以下操作: 不能创建队列 不能创建交换器 不能创建绑定 不能添加用户 不能更改权限 不能添加和删除集群节点 唯一磁盘节点崩溃了,集群是可以保持运行的,但

  • 假设我有一个普通的应用程序,其中我正在使用ApplicationContext ApplicationContext=new FileSystemXmlApplicationContext(“bean.xml”)创建一个Spring应用程序上下文 现在,假设在这个bean.xml有Spring bean的bean定义,所以当我创建应用程序上下文时,Spring容器将为这个实例化和初始化一个对象。