当前位置: 首页 > news >正文

车佣做汽车网站怎么样广告制作

车佣做汽车网站怎么样,广告制作,网站承接广告宣传方案,低价网站制作Springboot项目中使用druid因数据库不可用导致的项目挂起的处理方案 在Spring Boot项目中使用Druid实现多数据源和动态数据源管理是一个常见的场景。通过合理的配置和错误处理机制,您可以有效地管理数据源,避免因数据库不可用而导致整个项目挂起。 1.…

Springboot项目中使用druid因数据库不可用导致的项目挂起的处理方案

在Spring Boot项目中使用Druid实现多数据源和动态数据源管理是一个常见的场景。通过合理的配置和错误处理机制,您可以有效地管理数据源,避免因数据库不可用而导致整个项目挂起。
在这里插入图片描述

1. 配置多数据源

application.ymlapplication.properties中配置多个数据源信息:

spring:datasource:dynamic:primary: masterdatasource:master:url: jdbc:mysql://localhost:3306/master_dbusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverslave:url: jdbc:mysql://localhost:3306/slave_dbusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driver

2. 动态数据源配置

创建动态数据源配置类,通过@Primary注解标记主要数据源,并使用Druid数据源实现:

@Configuration
public class DynamicDataSourceConfig {@Bean@Primarypublic DataSource dataSource(DynamicDataSourceProperties dynamicDataSourceProperties) {DruidDataSource dataSource = new DruidDataSource();DynamicRoutingDataSource dynamicRoutingDataSource = new DynamicRoutingDataSource();Map<Object, Object> dataSourceMap = new HashMap<>();dataSourceMap.put("master", dataSource);dataSourceMap.put("slave", createDataSource(dynamicDataSourceProperties.getDatasource().get("slave")));dynamicRoutingDataSource.setDefaultTargetDataSource(dataSource);dynamicRoutingDataSource.setTargetDataSources(dataSourceMap);return dynamicRoutingDataSource;}private DataSource createDataSource(Map<String, String> dataSourceProperties) {DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(dataSourceProperties.get("url"));dataSource.setUsername(dataSourceProperties.get("username"));dataSource.setPassword(dataSourceProperties.get("password"));dataSource.setDriverClassName(dataSourceProperties.get("driver-class-name"));return dataSource;}
}

3. 处理数据库不可用的场景

当数据库不可用时,Druid默认的重试机制可能导致应用程序在连接失败后挂起。为避免这种情况,可以配置Druid的数据源,使其在获取连接失败后立即返回错误,而不是无限制地重试。

spring:datasource:dynamic:datasource:master:druid:break-after-acquire-failure: trueconnection-error-retry-attempts: 0slave:druid:break-after-acquire-failure: trueconnection-error-retry-attempts: 0

配置说明:

  • break-after-acquire-failure: 设置为true,表示在获取连接失败后,立即中断获取过程。
  • connection-error-retry-attempts: 设置为0,表示不进行重试操作。

4. 实现动态数据源切换

通过使用@DS注解,您可以在运行时动态切换数据源。例如:

@Service
public class MyService {@DS("slave")public void useSlaveDataSource() {// 使用从库的业务逻辑}@DS("master")public void useMasterDataSource() {// 使用主库的业务逻辑}
}

5. 总结

通过以上步骤,您可以在Spring Boot项目中成功实现多数据源和动态数据源的管理,并且有效处理因数据库不可用而导致的项目挂起问题。配置Druid的break-after-acquire-failureconnection-error-retry-attempts可以确保在数据库连接失败时,应用程序不会进入无休止的重试状态,从而提高项目的健壮性和可维护性。

http://www.zhongyajixie.com/news/1631.html

相关文章:

  • 手工灯笼长沙seo外包
  • 海口房产网站建设宁波seo优化报价多少
  • 商城网站建设那家好市场调研的四个步骤
  • 老网站绑定新网站如何做360搜索首页网址是多少
  • 彩票网站wordpress模板国外搜索引擎有哪些
  • 网站见建设客户管理软件crm排名
  • 所有做运动的网站有哪些网络推广平台
  • 东莞网站开发方案短视频精准获客
  • 如何 网站推广软件关键词排名
  • 怎么做赌博网站吗百度账号登录个人中心
  • 长沙网站开发湖南微联讯点不错网站设计需要什么
  • 郑州做网站和域名网络营销工具有哪些?
  • 电商网站制作价格云优化seo
  • 交互型网站代理公司注册
  • 建设工程合同司法解释百度seo网站在线诊断
  • 网站运营小白可以做吗seo评测论坛
  • pc网站建设怎么样百度推广关键词
  • 宣城网站建设公司如何制作微信小程序
  • 网站限制引擎抓取重庆公司网站seo
  • 用什么软件做介绍视频网站百度账户代运营
  • 网站建设与网页设计报告重庆seo公司怎么样
  • 佛山新网站建设怎么样温州网站建设
  • 抖音推广网站网站的宣传推广方式
  • 上海网站seo牛巨微无限制访问国外的浏览器
  • 九江市住房与城乡建设厅网站产品运营推广方案
  • 专业的论坛网站建设开发会计培训班
  • 个人网站可以注册com域名吗百度经验首页官网
  • jsp网站开发源码实例长沙网络营销公司排名
  • 汕头制作网站百度精简版入口
  • 企业网站底部如何做网站的教程