我正在探索在部署/崩溃的情况下优雅地处理关机的不同策略。我使用的是Spring Boot框架和Kubernetes。在一些服务中,我们的任务可能需要大约10-20分钟(数据处理,大型报告生成)。如何在任务耗时较长的情况下处理实例销毁。对于排队,我使用Kafka。
发布于 2021-06-18 02:54:48
我们的任务可能需要大约10-20分钟(数据处理、大型报告生成)
首先,这更像是一个作业/任务,而不是微服务。但类似的“规则”也适用,执行此作业的节点可能会因为升级或其他原因而终止,因此您的作业/任务必须是幂等的,并且能够在崩溃或终止时重新运行。
如何在任务耗时较长的情况下处理实例销毁。对于排队,我使用Kafka。
Kafka是一种很好的技术,因为它能够让客户端Jon/Task成为幂等。作业接收要处理的数据,在处理之后,它可以“提交”它已经处理过的数据。如果任务/作业在处理数据之前终止,则会产生一个新的任务/作业,并在尚未提交的“偏移”上继续处理。
https://stackoverflow.com/questions/68024933
复制相似问题