重启impala后,不会自动重连,这个如何配置,没找到相关参数
原提问者GitHub用户gileth
要让Spring Boot + Druid连接Impala时支持自动重连,需要以下几步:
在Druid数据源配置中添加testWhileIdle和testOnBorrow属性:
xml
Copy
设置timeBetweenEvictionRunsMillis属性,指定检测时间间隔:
xml
Copy
这里设置为每30秒检查一次连接。
添加initialSize和minIdle属性,配置连接池初始化大小和最小空闲连接:
xml
Copy
初始化10个连接,最小保持5个连接。
添加maxWait属性,配置等待获取连接的最大时间:
xml
Copy
这里设置为1分钟。
这些配置能让Druid实现 Impala 连接的自动重连:
通过testWhileIdle和testOnBorrow,Druid能检测到连接失败
通过timeBetweenEvictionRunsMillis,设置合理的检测间隔
通过initialSize和minIdle,始终保持部分连接
通过maxWait,避免获取连接太久而造成堵塞
Druid在检测到连接失败后,会从连接池获取新的连接,从而实现自动重连。
就按mysql一样的配置即可,我之前以为kudu不支持,以下配置给有需要的人参考: spring.datasource.druid.impala.driverClassName=com.cloudera.impala.jdbc41.Driver spring.datasource.druid.impala.url=jdbc:impala://127.0.0.1:21050/data_source spring.datasource.druid.impala.username=root spring.datasource.druid.impala.password=sjda1111 spring.datasource.druid.impala.initial-size=20 spring.datasource.druid.impala.max-active=100 spring.datasource.druid.impala.min-idle=5 spring.datasource.druid.impala.max-wait=60000 spring.datasource.druid.impala.pool-prepared-statements=true spring.datasource.druid.impala.max-pool-prepared-statement-per-connection-size=5 spring.datasource.druid.impala.validation-query=select 1 spring.datasource.druid.impala.validation-query-timeout=1 spring.datasource.druid.impala.test-on-borrow=true spring.datasource.druid.impala.test-on-return=true spring.datasource.druid.impala.test-while-idle=true spring.datasource.druid.impala.time-between-eviction-runs-millis=10000 spring.datasource.druid.impala.min-evictable-idle-time-millis=30000 spring.datasource.druid.impala.async-close-connection-enable=true spring.datasource.druid.impala.filter.stat.log-slow-sql=true spring.datasource.druid.impala.filter.stat.slow-sql-millis=10000
原回答者GitHub用户gileth
要在Spring Boot应用程序中配置自动重连Impala,您需要进行以下步骤:
pom.xml
文件中添加Impala JDBC驱动的依赖项。例如,可以使用如下依赖项:<dependency>
<groupId>com.cloudera.impala.jdbc</groupId>
<artifactId>ImpalaJDBC4</artifactId>
<version>2.7.0</version>
</dependency>
请确保将版本号更改为与您实际使用的Impala JDBC驱动版本相对应。
application.properties
或application.yml
文件中进行Druid数据源的配置,包括Impala连接URL、用户名和密码等。示例配置如下:spring.datasource.url=jdbc:impala://your-impala-host:21050/your-impala-database;AuthMech=3
spring.datasource.username=your-impala-username
spring.datasource.password=your-impala-password
spring.datasource.driver-class-name=com.cloudera.impala.jdbc41.Driver
请替换your-impala-host
、your-impala-database
、your-impala-username
和your-impala-password
为实际的Impala主机、数据库、用户名和密码。
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
可以根据您的具体需求进行调整。
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
这将使Druid监控页面可通过http://your-app-url/druid
访问。请确保替换your-app-url
为您的应用程序URL。
完成上述步骤后,您的Spring Boot应用程序将能够使用Druid连接池连接到Impala,并在断开连接时自动进行重连。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。