在完成EC2上运行的进程之前,停止EC2的按比例缩小

我们有一个在ec2实例上运行的应用程序,该实例在ecs集群中用作docker主机。每个ec2上都有多个任务正在运行。每个任务都会从SQS接收一条消息并处理一些事件(该事件会将数据从一种格式转换为另一种格式,然后将其上传到文件系统),这可能需要几秒钟到12-15个小时不等,具体取决于它包含的数据大小。一旦事件处理完成,任务就会停止,并为新消息(事件)创建新任务。只要SQS中有大量消息,我们就会按比例放大实例以处理消息(以避免等待时间)。如果(消息数)

对于ec2缩小,我们需要确保没有正在运行的任务,即容器未处理任何事件。无法找出哪个ec2空闲(不处理任何事件),因此我们将容器标记为DRAINING状态,然后终止ec2。但是,当我们将任何容器标记为排空状态时,在其上运行的任务将停止(因此,事件处理将在两者之间终止,并且数据将丢失)。有什么原因可以让我们在任务停止之前完成流程,或者有人可以建议更好的方法。

wuxiaoxun 回答:在完成EC2上运行的进程之前,停止EC2的按比例缩小

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3150919.html

大家都在问