我有一个与 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?当容器移动到不同的集群时,是否会出现一些连接问题?
谢谢!
我仍然面临这个问题,到目前为止我尝试过:
如果有人有想法,我将不胜感激