相关疑难解决方法(0)

如何解决 OpenShift 集群中多个 pod 中的 liquibase 等待更改日志锁定问题?

我们支持使用 Spring Boot 用 Ja​​va 编写并部署在 OpenShift 中的多个微服务。一些微服务与数据库通信。我们经常在单个部署中的多个 Pod 中运行单个微服务。当每个微服务启动时,它会启动 liquibase,它会尝试更新数据库。问题是有时一个 pod 在等待更改日志锁定时会失败。当这种情况发生在我们的生产 OpenShift 集群中时,我们预计其他 pod 在重新启动时会失败,因为与更改日志锁定问题相同。因此,在最坏的情况下,所有 Pod 都将等待解除锁定。

我们希望 Liquidbase 在每个 Pod 启动时自动准备我们的数据库模式。

在每个微服务中存储这个逻辑是否好?出现liquidbase changelog lock问题如何自动解决?我们是否需要将数据库准备逻辑放在单独的部署中?

所以也许我应该解释一下我的问题。在微服务架构方面运行数据库迁移的最佳方法是什么?也许我们不应该在每个 pod 中使用数据库迁移?也许最好用单独的部署来完成,或者用一些根本不在 OpenShift 中的额外 Jenkins 工作来完成?

database liquibase openshift spring-boot kubernetes

7
推荐指数
2
解决办法
4967
查看次数

标签 统计

database ×1

kubernetes ×1

liquibase ×1

openshift ×1

spring-boot ×1