我有一个分布式调度程序。现在,我必须选择记录并进行处理。 就我而言,我将创建一个事务并处理记录。
现在假设在处理本身期间,Kubernetes容器会关闭。在那种情况下,它将释放锁定并回滚事务
答案 0 :(得分:1)
应终止吊舱的时间:
SIGTERM信号被发送到每个容器中的主进程(PID 1),并且开始“宽限期”倒计时(默认为30秒-参见下文对其进行更改)。
在收到SIGTERM之后,每个容器都应正常关闭正在运行的应用程序并退出。
如果容器没有在宽限期内终止,则将发送SIGKILL信号,并猛烈终止该容器。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test
spec:
replicas: 1
template:
spec:
containers:
- name: test
image: ...
terminationGracePeriodSeconds: 60
因此,在您的Spring Boot应用程序中,您需要处理SIGTERM信号并回滚任何事务或将其持久化到外部以供稍后重试。