7.7. Safe Transaction Recovery 的 EAP Operator


EAP 操作器在终止应用集群之前确保数据一致性,方法是验证所有事务在缩减副本之前已完成,并将 pod 标记为 干净 以进行终止。

这意味着,如果要在没有数据不一致的情况下安全地删除部署,您必须首先将 pod 数量缩减为 0,等待所有 pod 终止,然后才删除 wildflyserver 实例。

警告

如果您决定删除整个 wildflyserver 定义(oc delete wildflyserver <deployment_name>),则不会启动事务恢复过程,无论未完成的交易都会终止 pod。此操作结果的未完成工作可能会阻止您稍后启动的数据更改。涉及与此 wildflyserver 交互 EJB 远程调用的其他 JBoss EAP 实例的数据更改也可能被阻止。

当扩展过程开始 pod 状态(oc get pod <pod_name>)仍然标记为 Running,因为 pod 必须完成所有未完成事务,包括针对它的远程 EJB 调用。

如果要监控 scaledown 进程的状态,请观察 wildflyserver 实例的状态。如需更多信息,请参阅监控缩减过程。有关扩展过程中 pod 状态的信息,请参阅 Pod 在缩减期间的状态

注意

当运行可引导 JAR 应用镜像的 pod 缩减时,EAP 操作器不会恢复事务。EAP 操作器记录一个跟踪,描述在 pod 缩减时无法恢复事务。

7.7.1. Stable 网络主机名的 StatefulSets

管理 wildflyserver 的 EAP 操作器将创建 StatefulSet 作为管理 JBoss EAP pod 的底层对象。

StatefulSet 是管理有状态应用程序的工作负载 API 对象。它管理一组容器集的部署和扩展,并且对这些容器集的顺序和唯一性提供保证。

StatefulSet 可确保以预定义的顺序命名集群中的 pod。它也确保 pod 终止遵循相同的顺序。例如,让我们说,pod-1 具有具有启发式结果的交易,因此处于 SCALING_DOWN_RECOVERY_DIRTY 状态。即使 pod-0 处于 SCALING_DOWN_CLEAN 状态,它也不会在 pod-1 之前终止。在 pod-1 被 清理 并被终止前,pod-0 仍然处于 SCALING_DOWN_CLEAN 状态。但是,即使 pod-0 处于 SCALING_DOWN_CLEAN 状态,它也不会收到任何新的请求,实际上也没有闲置。

注意

减少 StatefulSet 的副本大小或删除 pod 本身无效,并会恢复此类更改。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.