数据库连接的最大池大小 Keycloak 版本 11

max-pool-size for DB connections Keycloak version 11

正在尝试调查有关 keycloak 部署的问题。 从 documentation 我们看到我们应该在 stanealone.xml 中改变这个 属性 以允许更多

但是,将独立 xml 更改为此

                </datasource>
                <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>jdbc:postgresql://${env.DB_ADDR:postgres}/${env.DB_DATABASE:keycloak}${env.JDBC_PARAMS:}</connection-url>
                    <driver>postgresql</driver>
                    <pool>
                        <max-pool-size>200</max-pool-size>
                    </pool>

当我们允许 JMX 连接到管理控制台时,我注意到了这一点 max pool size showing 19

是否有任何东西可以覆盖我们正在使用的最大池大小设置,或者如果不是从 standalone.xml

我不知道你为什么会遇到这个问题,但我会尽力提供帮助。

Keycloak 11 使用 Widlfy 20,offers several options to configure the datasource

请尝试设置

  • pool-use-strict-min 为真
  • pool-prefill 为真
  • min-pool-size 到 200
  • initial-pool-size 到 200

此外,monitor the number of opened connection on your Postgres database,并检查他们是否根据您收到的 JMX 报告进行补偿。

最后,如果 none 这些导致您的情况发生变化,我只能建议尝试另一个 ManagedConnectionPool 实现(参见 mcp 属性)