1

作为自动扩展我们的 presto 集群的一部分,我们喜欢在让 EC2 终止它之前优雅地关闭一个 presto worker。执行命令后

curl -v -XPUT --data '"SHUTTING_DOWN"' -H "内容类型:应用程序/json" http://250.0.46.167:8081/v1/info/state

工作人员日志立即指示“com.facebook.presto.server.GracefulShutdownHandler 关闭请求”,并且协调器中的节点很快变为“shutting_down”状态。工作进程最终在 4 分钟后退出(由于 2 分钟的双宽限期而不是挂起的查询)。

到目前为止一切顺利,但正如任何托管守护程序所期望的那样。工作进程立即重新启动,很快节点在协调器中恢复为“活动”。

我们希望 Presto 中的优雅关闭大致如下所示:关闭请求将被发送到协调器(而不是工作器)。协调器告诉工作人员关闭,然后从逻辑上将其从活动节点列表中删除。如果工作人员重新启动并重新注册,协调员将在接下来的一个小时内忽略它。

我想知道当前的 Presto 集群所有者/运营商如何处理这个问题?

4

2 回答 2

0

正常关闭文档包括 HTTP PUT的所有相关细节,以及它的整体工作方式。

通常集群节点通常运行很长时间。协调器在关闭时自动停止对工作人员的调度并将其从池中删除。

于 2020-12-30T00:03:00.487 回答
0

我所做的是在 PUT 请求之后,我以 1 秒的时间间隔不断轮询同一资源上的 GET 输出,并在实例无法响应(服务关闭)或返回 ACTIVE(服务重新启动)时关闭实例

1 秒不足以让服务在正常关闭后再次完全上线,所以这对我来说一直很好

于 2020-12-23T22:29:09.113 回答