DB连接的最大池大小在Keycloak 11版本中是多少?

3

尝试调查关于keycloak部署的问题。 根据文档,我们应该修改stanealone.xml中的此属性以允许更多内容。

然而,在将standalone 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连接管理控制台时,我发现这个最大池大小显示为19

是否有任何可能覆盖我们使用的最大池大小设置或者如何调试出它是从哪里获取最大池大小的(如果不是从standalone.xml文件中获取的)?


这真的很让人不安... 我在想,JMX报告的最大池大小可能会随着更多连接的打开而增长。 你能否将<initial-pool-size>参数设置为更高的值(200?)并检查您是否在JMX中看到了更高的max-pool-size? - Olivier Tonglet
不幸的是,添加这个并没有改变启动时最多显示20个连接的情况。 - Shane McGovern
你能告诉我你正在使用哪个版本的Keycloak吗?我认为在旧版本中,<max-pool-size>属性没有嵌套在<pool>下面。 - Olivier Tonglet
KC版本11.0.2 - Shane McGovern
1个回答

2

我不确定你遇到这个问题的原因,但我会尽力帮助。

Keycloak 11使用Wildfly 20,它提供了多种选项来配置数据源

请尝试设置:

  • pool-use-strict-min为true
  • pool-prefill为true
  • min-pool-size为200
  • initial-pool-size为200

此外,请监控您的Postgres数据库上打开的连接数量,并检查它们是否与您得到的JMX报告相符。

最后,如果以上方法没有改变您的情况,我只能建议尝试另一个ManagedConnectionPool实现(参见mcp属性)。


抱歉我不能提供更多帮助。其他选项是在Keycloak问题跟踪器(https://github.com/keycloak/keycloak-community/issues)上发布问题,或者使用Wildfly标签提出新问题,也许StackOverflow上的一些Wildfly专家能够回答。 - Olivier Tonglet
接受此回答,因为它包含有用的信息和资源,可用于进一步调试。我们这边的问题实际上是在使用 standalone-ha.xml 而不是 standalone.xml,而且从未被注意到。 - Shane McGovern

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接