开发者社区> 问答> 正文

springboot+druid 访问impala,如何配置自动重连impala

重启impala后,不会自动重连,这个如何配置,没找到相关参数

原提问者GitHub用户gileth

展开
收起
山海行 2023-07-05 19:34:14 531 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    要让Spring Boot + Druid连接Impala时支持自动重连,需要以下几步:

    在Druid数据源配置中添加testWhileIdle和testOnBorrow属性:
    xml
    Copy



    这会让Druid在空闲时间和每次获取连接时,先做一个查询检测连接是否可用。

    设置timeBetweenEvictionRunsMillis属性,指定检测时间间隔:
    xml
    Copy


    这里设置为每30秒检查一次连接。

    添加initialSize和minIdle属性,配置连接池初始化大小和最小空闲连接:
    xml
    Copy


    初始化10个连接,最小保持5个连接。

    添加maxWait属性,配置等待获取连接的最大时间:
    xml
    Copy


    这里设置为1分钟。

    这些配置能让Druid实现 Impala 连接的自动重连:

    通过testWhileIdle和testOnBorrow,Druid能检测到连接失败
    通过timeBetweenEvictionRunsMillis,设置合理的检测间隔
    通过initialSize和minIdle,始终保持部分连接
    通过maxWait,避免获取连接太久而造成堵塞
    Druid在检测到连接失败后,会从连接池获取新的连接,从而实现自动重连。

    2023-07-30 16:18:18
    赞同 展开评论 打赏
  • 就按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

    2023-07-06 11:01:58
    赞同 展开评论 打赏
  • 要在Spring Boot应用程序中配置自动重连Impala,您需要进行以下步骤:

    1. 添加Impala JDBC驱动依赖:在pom.xml文件中添加Impala JDBC驱动的依赖项。例如,可以使用如下依赖项:
    <dependency>
        <groupId>com.cloudera.impala.jdbc</groupId>
        <artifactId>ImpalaJDBC4</artifactId>
        <version>2.7.0</version>
    </dependency>
    

    请确保将版本号更改为与您实际使用的Impala JDBC驱动版本相对应。

    1. 配置Druid数据源:在application.propertiesapplication.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-hostyour-impala-databaseyour-impala-usernameyour-impala-password为实际的Impala主机、数据库、用户名和密码。

    1. 配置Druid连接池参数:根据您的应用程序需求,可以配置Druid连接池的其他参数,例如最小空闲连接数、最大活跃连接数和最大等待时间等。示例配置如下:
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.min-idle=5
    spring.datasource.druid.max-active=20
    spring.datasource.druid.max-wait=60000
    

    可以根据您的具体需求进行调整。

    1. 配置连接池监控:如果需要在应用程序中查看Druid连接池的监控信息,可以配置Druid的监控功能。示例配置如下:
    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。

    1. 实现重连机制:默认情况下,Druid会自动尝试重连Impala,因此您无需额外配置自动重连机制。

    完成上述步骤后,您的Spring Boot应用程序将能够使用Druid连接池连接到Impala,并在断开连接时自动进行重连。

    2023-07-05 19:55:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多