当前位置: 首页 > 知识库问答 >
问题:

在SpringBoot应用程序中PGPool不使用HikariCP

洪鹏海
2023-03-14

我已经为Postgresql启用了复制,并且正在使用PGPool进行负载平衡。

我在使用HikariCP甚至Apache DBCP连接到Postgres时遇到了问题。

在SpringBoot应用程序中有没有使用PGPool的方法?

spring:
  datasource:
    driverClassName: org.postgresql.Driver
    url: jdbc:postgresql://192.168.177.148:9999/test
    username: myUser
    password: XXXXXXX
  jpa:
    properties.hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
    database-platform: org.hibernate.dialect.PostgreSQLDialect
    hibernate.ddl-auto: update
logging:
  level:
    org.springframework: DEBUG

请查找堆栈跟踪:

2018-08-10 10:20:19.124信息37879----[main]com.zaxxer.hikari.hikaridatasource:HikariPool-1-启动...2018-08-10 10:20:20.617错误37879---[main]com.zaxxer.hikari.pool.hikaripool:HikariPool-1-池初始化期间出现异常。

psqlexception:致命:无法绑定详细信息:在org.postgresql.core.v3.QueryExecutorImpl.ReceiveErrorResponse(QueryExecutorImpl.java:2440)~[Postgresql.core.v3.QueryExecutorImpl.42.2.4]在org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)~[Postgresql-42.2.4.jar:42.2.4]在

018-08-10 10:20:20.620警告37879--[main]O.s.b.a.orm.jpa.databaselookup:无法从数据源确定jdbc url

更多跟踪

org.springframework.jdbc.support.MetadataAccessException:无法获取提取元数据的连接;嵌套异常为org.springframework.JDBC.CanNotGetJdbcConnectionException:无法获得JDBC连接;嵌套异常为org.postgresql.util.psqlexeption:致命:无法绑定详细信息:在org.springframework.jdbc.support.jdbcutils.extractdatabaseMetadata(jdbcutils.java:328)~[spring-jdbc-5.0.8.release.jar:5.0.8.release]在

更多跟踪

共有1个答案

朱通
2023-03-14

我们在Kubernetes集群上也有几乎相同的问题。数据库已关闭,HikariCP无法正确验证连接。下面的Spring Boot应用程序给出了例外情况:

2020-01-06 09:38:13.013  WARN 1 --- [nio-8080-exec-8] com.zaxxer.hikari.pool.PoolBase          : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@490c2ee7 (This connection has been closed.)

2020-01-06 09:38:13.045  WARN 1 --- [nio-8080-exec-8] org.postgresql.jdbc.PgConnection         : Validating connection.

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:333) ~[postgresql-42.2.2.jar!/:42.2.2]

    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) ~[postgresql-42.2.2.jar!/:42.2.2]
... common frames omitted

Caused by: java.io.EOFException: null

    at org.postgresql.core.PGStream.receiveChar(PGStream.java:295) ~[postgresql-42.2.2.jar!/:42.2.2]

    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1947) ~[postgresql-42.2.2.jar!/:42.2.2]

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306) ~[postgresql-42.2.2.jar!/:42.2.2]

    ... 111 common frames omitted

为了解决这个问题,我们在spring boot应用程序中为Hikari提供了以下属性。

spring.datasource.hikari.leakDetectionThreshold=5000  
spring.datasource.hikari.maxLifetime=900000  
logging.level.com.zaxxer.hikari=DEBUG
  • https://github.com/brettwooldridge/hikaricp/issues/1237
  • Hikaripool-1-无法验证连接org.postgresql.jdbc.pgconnection@2a84e649(此连接已关闭。)
 类似资料:
  • 我是kubernetes的新手,需要在openshift平台上使用k8s confimap将springboot应用程序的属性文件外部化。我已将属性文件保存在git repo中,作为“greeter.message=Spring Bootmyapplication.properties已在库伯内特斯上挂载为卷!”并使用“oc create confimap myconfig--from-file=

  • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em

  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • 我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?

  • 我有以下用例: 我的应用程序无法处理的消息,可能是由于与网络等相关的一些间歇性问题,正在写入kafka主题。 我希望使用cron/scheduled任务定期读取这些消息,然后处理它们。 到目前为止,我已经在我的弹跳靴中使用了KafkaListener来满足我与kafka相关的需求,并且运行良好。 但是,我无法找到一种方法来间歇性地使用KafkaListener阅读消息。 Spring有没有办法做到

  • 这是我使用SpringBoot的第一天,我试图理解体系结构,因此我开始构建一个hello world应用程序: 在我的pom.xml中,在maven-shade-plugin下,我将mainClass声明如下: 文件目标是src/main/java/com/demo/helloworld.java,该文件中的代码是: 我错过了什么?