gpt4 book ai didi

java - 检测 EC2 实例何时关闭(Java SDK)

转载 作者:行者123 更新时间:2023-11-30 11:15:30 25 4
gpt4 key购买 nike

我在 AWS 支持论坛上发布了这个,但没有收到回复,所以希望你们有一个想法......

我们有一个自动缩放组,它根据当前负载启动或终止实例。我希望它能够在我当前的 EC2 实例上检测到它即将关闭并完成我的工作。

更详细地描述情况。我们有一个自动缩放组,每个实例从单个 SQS 读取内容。每个实例都将运行多个线程,每个线程都从同一个 SQS 队列中读取数据并根据需要处理数据。

我需要知道这个实例什么时候将要关闭,这样我就可以停止新线程读取数据,并阻止关闭,直到剩余的数据完成处理。

我不确定如何在 Java SDK 中执行此操作,而且我担心我的实例会在我的数据未得到正确处理的情况下终止。

谢谢李

最佳答案

当它想要缩减规模时,AWS Auto Scaling 会在没有警告的情况下终止您的 EC2 实例。

没有办法让任何队列工作线程在终止之前耗尽。

如果您的工作人员以事务方式处理消息,并且您在成功处理消息之前不从 SQS 中删除消息,那么这应该不是问题。实例终止时处理将停止,事务将不会提交。该消息不会从 SQS 队列中删除,稍后可以由另一个工作人员提取和处理。

它支持的唯一一种耗尽行为是从 ELB 耗尽的 HTTP 连接:"If connection draining is enabled for your load balancer, Auto Scaling waits for the in-flight requests to complete or for the maximum timeout to expire, whichever comes first, before terminating instances".

关于java - 检测 EC2 实例何时关闭(Java SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com