Keycloak 在 Azure 容器实例上下文中运行 - 异常:无法获取 JDBC 连接

问题描述 投票:0回答:1

我有一个与 Keycloak 相关的问题,提前感谢您的建议。

我在Azure容器实例(CPU:1,内存1.5 GB)的上下文中部署了Keycloak(版本20.0.5),其相关数据库是SQL数据库(定价层:标准S0:10 DTU)也部署在Azure上。 大多数时候,Keycloak 和 SQL 数据库之间的连接是有效的,但我经常观察到以下日志:

2024-06-26 10:20:36,971 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) SQL Error: 0, SQLState: null
2024-06-26 10:20:36,971 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) Acquisition timeout while waiting for new connection
2024-06-26 10:20:36,972 ERROR [org.keycloak.services.scheduled.ScheduledTaskRunner] (Timer-0) Failed to run scheduled task ClearExpiredUserSessions: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection

该异常每 30 分钟发生一次,有时甚至每小时发生一次。这会导致连接失败约 2 分钟。之后,一切都很好。

我的问题是您是否有任何建议、指示或任何可以帮助我确定此连接问题原因的内容:

• 我是否使用了错误的定价层组合(ACI:SKU == 标准,SQL == 标准),我已经将 SQL 从基本升级到标准

• 这是否是由于池大小造成的问题? (我没有配置,我用的是默认的) • 是否有太多对SQL 的连接/会话请求?虽然我不应该超出限制(见下文)

• 由于配置错误,Keycloak 容器内部是否会发生任何情况?

• Azure 容器实例是否不适合运行 Keycloak?当容器移动到不同的集群时,是否会出现一些连接问题?

enter image description here

谢谢!

azure jdbc azure-sql-database keycloak azure-container-instances
1个回答
0
投票

我仍然面临这个问题,到目前为止我尝试过:

  • 将Azure容器实例的CPU和内存增加到4 CPU/8GM
  • 将 SQL 数据库的 SKU 从基本更改为标准
  • 将KeyCloak版本从20.0.5升级到23.0.7

如果有人有想法,我将不胜感激

© www.soinside.com 2019 - 2024. All rights reserved.