作为自动缩放presto集群工作的一部分,我们喜欢在EC2终止presto worker之前优雅地关闭它。以下命令后
curl-v-xput--data'“shutting_down”'-h“content-type:application/json”http://250.0.46.167:8081/v1/info/state
worker日志立即指示“com.facebook.presto.server.GracefulShutdownHandler Shutdown Requested”,并很快协调器中的节点变为“shutting_down”状态。工作进程最终在4分钟后退出(由于2分钟的双宽限期而不是挂起的查询)。
到目前为止还算不错,但对于任何托管后台进程来说都是如此。工作进程立即重新启动,很快节点就回到协调器中的“活动”状态。
我们希望Presto中的优雅关机大致如下所示:关机请求将发送给协调器(而不是工作器)。coordinator告诉worker关闭,然后从活动节点列表中逻辑地删除它。如果worker重新启动并重新注册,则coordinator将在接下来的一个小时内忽略它。
我想知道当前的Prestohtml" target="_blank">集群所有者/运营商如何处理这个问题?
我所做的是,在PUT请求之后,我以1秒的间隔对同一资源上的GET的输出进行轮询,并在实例响应失败(服务关闭)或返回活动(服务重新启动)时立即关闭该实例
1秒是不够的,服务再次完全在线后,关闭优雅,所以这一直是工作良好的我
优雅关闭,包括两部分,一个是 RPC 框架作为客户端,一个是 RPC 框架作为服务端。 作为服务端 作为服务端的时候,RPC 框架在关闭时,不应该直接暴力关闭。在 RPC 框架中 com.alipay.sofa.rpc.context.RpcRuntimeContext 在静态初始化块中,添加了一个 ShutdownHook // 增加jvm关闭事件 if (RpcConf
我用的是spring kafka 1.2.2。释放目前,我已经为没有BackOffPolicy和AlwaysRetryPolicy的容器配置了重试模板。确认模式为手动或立即。 当一个SIGTERM出现时,我会让当前消息被处理,当@KafkaListener再次被调用时,我会在容器上抛出RuntimeException,该容器会无限期重试并持续抛出异常。一段时间后,SIGKILL被发出,容器被停止(
Dorado的优雅关闭通过ShutDownHook方式实现,调用端和服务端通过添加hook进行资源的清理和关闭 protected synchronized void addShutDownHook() { if (hook == null) { hook = new ShutDownHook(this); Runtime.getRuntime().addS
我正在开发一个由嵌入式Tomcat支持的Spring Boot应用程序,我需要通过以下步骤开发一个优雅的关机: 停止处理新的HTTP请求(停止web容器) 处理所有已接受的请求 关闭Spring ApplicationContext 附注。Spring Boot 1.5.20版本,Java 8
在spring boot中有没有一种方法可以控制App的优雅关机。 我知道在bean中可以使用@predestroy方法,但如何控制调用这些@predestroy方法的顺序。 您可以有多个相互依赖的bean,上下文的关闭是否已经寻找这种依赖关系并以正确的顺序调用@predestroy方法? 2.)阻止rabbit消息侦听器接受新消息 3.)等待关机前已经开始但尚未完成的所有处理。
如果我们在后台启动KafkaStream应用程序(比如Linux),有没有一种方法可以从外部向应用程序发出信号,从而启动优雅的关机?