<bdo id='yW3vz'></bdo><ul id='yW3vz'></ul>

  1. <tfoot id='yW3vz'></tfoot>

    <legend id='yW3vz'><style id='yW3vz'><dir id='yW3vz'><q id='yW3vz'></q></dir></style></legend>

      <i id='yW3vz'><tr id='yW3vz'><dt id='yW3vz'><q id='yW3vz'><span id='yW3vz'><b id='yW3vz'><form id='yW3vz'><ins id='yW3vz'></ins><ul id='yW3vz'></ul><sub id='yW3vz'></sub></form><legend id='yW3vz'></legend><bdo id='yW3vz'><pre id='yW3vz'><center id='yW3vz'></center></pre></bdo></b><th id='yW3vz'></th></span></q></dt></tr></i><div id='yW3vz'><tfoot id='yW3vz'></tfoot><dl id='yW3vz'><fieldset id='yW3vz'></fieldset></dl></div>
    1. <small id='yW3vz'></small><noframes id='yW3vz'>

      解决springboot druid数据库连接池连接失败后一直重连问题

      时间:2023-12-07

      <legend id='gW1Tq'><style id='gW1Tq'><dir id='gW1Tq'><q id='gW1Tq'></q></dir></style></legend>
        <tbody id='gW1Tq'></tbody>

      <small id='gW1Tq'></small><noframes id='gW1Tq'>

          <bdo id='gW1Tq'></bdo><ul id='gW1Tq'></ul>
          <tfoot id='gW1Tq'></tfoot>
          <i id='gW1Tq'><tr id='gW1Tq'><dt id='gW1Tq'><q id='gW1Tq'><span id='gW1Tq'><b id='gW1Tq'><form id='gW1Tq'><ins id='gW1Tq'></ins><ul id='gW1Tq'></ul><sub id='gW1Tq'></sub></form><legend id='gW1Tq'></legend><bdo id='gW1Tq'><pre id='gW1Tq'><center id='gW1Tq'></center></pre></bdo></b><th id='gW1Tq'></th></span></q></dt></tr></i><div id='gW1Tq'><tfoot id='gW1Tq'></tfoot><dl id='gW1Tq'><fieldset id='gW1Tq'></fieldset></dl></div>

                下面就详细讲解如何解决springboot druid数据库连接池连接失败后一直重连问题。

                问题描述

                在使用Spring Boot框架中,如果使用了Druid作为数据库连接池,出现了连接失败的情况,就会有可能导致Druid重试连接的问题,造成CPU和内存等资源的浪费。

                解决方法

                为了解决Druid连接失败后一直重连的问题,可以通过如下两种方式来解决:

                1. 关闭Druid的重试机制

                可以通过在DruidDataSource配置中设置"connectionErrorRetryAttempts"和"breakAfterAcquireFailure"来关闭Druid的重试机制。具体实现方式如下:

                #Spring Boot中application.properties的示例配置代码
                spring.datasource.druid.connectionErrorRetryAttempts = 0 # 关闭连接失败的重试次数设置
                spring.datasource.druid.breakAfterAcquireFailure = true # 当连接获取超时时,是否需要抛出异常,如果设为false,则会重试获取连接,默认值为false,建议设置为true。
                

                通过将"connectionErrorRetryAttempts"设置为0,就可以关闭Druid的重试机制。

                2. 使用重试机制并设置超时时间

                如果关闭Druid的重试机制并不是你想要的解决方案,也可以使用Druid的重试机制并设置超时时间。具体实现方式如下:

                #Spring Boot中application.properties的示例配置代码
                spring.datasource.druid.maxWait = 60000 # 配置Druid获取连接的最大等待时间为60秒
                spring.datasource.druid.timeBetweenEvictionRunsMillis = 60000 # 用来检测连接是否有效的时间间隔,默认为1分钟。
                spring.datasource.druid.minEvictableIdleTimeMillis = 300000 # 连接在池中最小生存的时间,默认为300000毫秒(即5分钟)。
                spring.datasource.druid.testWhileIdle = true # 是否开启连接的回收机制,默认为false,建议设置为true。
                spring.datasource.druid.removeAbandoned = true # 是否开启连接的自动回收机制,默认为false,建议设置为true。
                spring.datasource.druid.removeAbandonedTimeoutMillis = 1800000 # 连接超时时间,如果连接超过此时间没有归还,将自动回收该连接,默认为1800000毫秒(即30分钟)。
                

                通过设置"maxWait"来限制Druid连接失败后重新获取连接的等待时间;同时,也可以通过设置"removeAbandonedTimeoutMillis"来限制连接在连接池中的最大空闲时间,如果超过了这个时间就会被自动回收。

                示例说明

                示例一

                问题描述

                在应用程序中使用Druid作为数据库连接池,当出现连接失败的情况时,Druid一直在重复地尝试重新连接,导致CPU和内存等资源的浪费。

                解决方法

                通过将DruidDataSource的"connectionErrorRetryAttempts"设置为0来关闭连接失败的重试次数设置,从而解决Druid不断重连的问题。

                #Spring Boot中application.properties的示例配置代码
                spring.datasource.druid.connectionErrorRetryAttempts = 0 # 关闭连接失败的重试次数设置
                

                示例二

                问题描述

                在应用程序中使用Druid作为数据库连接池,当出现连接失败的情况时,Druid不断地尝试重新连接,但是连接超时后依然无法正常连接数据库。

                解决方法

                通过设置Druid连接池的超时时间,可以在重试失败后限制Druid的连接等待时间,从而防止Druid一直在不停地重试连接,以达到降低CPU和内存等资源消耗的目的。

                #Spring Boot中application.properties的示例配置代码
                spring.datasource.druid.maxWait = 60000 # 配置Druid获取连接的最大等待时间为60秒
                spring.datasource.druid.removeAbandonedTimeoutMillis = 1800000 # 连接超时时间,如果连接超过此时间没有归还,将自动回收该连接,默认为1800000毫秒(即30分钟)。
                

                通过上述配置,Druid的连接最大等待时间被设置为60秒,同时连接在连接池中的最大空闲时间被设置为30分钟,从而实现了Druid连接池的智能限制和回收机制,达到了解决连接失败后一直重连的问题的目的。

                上一篇:Spring强大事务兼容数据库多种组合解决业务需求 下一篇:教你用springboot连接mysql并实现增删改查

                相关文章

                  • <bdo id='s0FK0'></bdo><ul id='s0FK0'></ul>
                  <i id='s0FK0'><tr id='s0FK0'><dt id='s0FK0'><q id='s0FK0'><span id='s0FK0'><b id='s0FK0'><form id='s0FK0'><ins id='s0FK0'></ins><ul id='s0FK0'></ul><sub id='s0FK0'></sub></form><legend id='s0FK0'></legend><bdo id='s0FK0'><pre id='s0FK0'><center id='s0FK0'></center></pre></bdo></b><th id='s0FK0'></th></span></q></dt></tr></i><div id='s0FK0'><tfoot id='s0FK0'></tfoot><dl id='s0FK0'><fieldset id='s0FK0'></fieldset></dl></div>

                  1. <legend id='s0FK0'><style id='s0FK0'><dir id='s0FK0'><q id='s0FK0'></q></dir></style></legend>
                    <tfoot id='s0FK0'></tfoot>

                  2. <small id='s0FK0'></small><noframes id='s0FK0'>