【问题标题】:Liquibase causing PostgreSQL DB Lock - Microservices running as a pod in AKSLiquibase 导致 PostgreSQL 数据库锁定 - 在 AKS 中作为 pod 运行的微服务
【发布时间】:2022-01-26 01:15:51
【问题描述】:

我们是在 Azure AKS 集群上作为 pod 运行的多个微服务(使用 Liquibase)。

我们经常注意到 DB 锁和 Pod 会崩溃,因为它会在运行状况检查中失败。

有没有办法克服这种情况,因为它影响很大。我们必须手动解锁 DB 表,这样 pod 才会启动。

在其中一个日志中,我注意到以下错误

我相信,它需要从 Application(Springboot) 处理。

【问题讨论】:

  • 您引用了“以下错误”,但未包含错误消息。
  • 嗨,詹姆斯,谢谢。从 pod 日志中,我可以看到诸如等待更改锁定之类的错误。
  • 在DB lock之前,我在日志中注意到了这个错误——com.mchange.v2.async.thread pool asynchronous.deadlockdetector ——明显死锁——创建紧急线程

标签: postgresql locking liquibase


【解决方案1】:

您可以编写一段在应用程序启动时执行的代码,如果找到就会释放锁。那么数据库连接就不会失败。 目前在我们的环境中使用相同的。

【讨论】:

  • 嗨,帕万,谢谢。当应用程序启动时,在 Liquibase 获取数据库锁之前 - 您添加了释放锁的代码?目前手动 DB 团队正在释放 dB 锁定。不确定应用程序如何处理此问题
  • 我们不知道为什么会发生 DB 锁定。我们是否需要在应用程序级别定义任何参数,或者是因为配置错误。
猜你喜欢
  • 2011-08-09
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2017-11-30
  • 2020-03-22
相关资源
最近更新 更多