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

网站制作外包是怎么做的百度站长平台有哪些功能

网站制作外包是怎么做的,百度站长平台有哪些功能,wordpress导出淘宝,家庭农场做网站Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现0.前言1. 作者提供了接口2. 基于此接口的抽象类实现自…Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现0.前言1. 作者提供了接口2. 基于此接口的抽象类实现自定义负载均衡策略如何自定义多数据源懒启动配置 3. 参考资料 0.前言 我们低代码平台是支持多租户的模式用户在平台上配置了多数据源后数据源会持久化到低代码的数据库中。多租户场景中多数据源自定义来源 是从数据库中通过查询数据源配置信息表获取到数据库的链接信息和配置信息然后利用 dynamic-datasource创建多数据源对象注入到容器里。 dependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion${dynamic.datasource.version}/version/dependency1. 作者提供了接口 2. 基于此接口的抽象类实现 Beanpublic DynamicDataSourceProvider jdbcDynamicDatasourceProvider(DynamicDataSourceProperties properties) {// 获取Primary动态数据源MapString, DataSourceProperty datasourceMap properties.getDatasource();DataSourceProperty masterDsProperty datasourceMap.get(properties.getPrimary());// 从项目配置文件里配置的主数据源中DB加载要多租户的数据源。我们主要用在低代码场景return new AbstractJdbcDataSourceProvider(masterDsProperty.getDriverClassName(),masterDsProperty.getUrl(), masterDsProperty.getUsername(), masterDsProperty.getPassword()) {Overrideprotected MapString, DataSourceProperty executeStmt(Statement statement) {MapString, DataSourceProperty dataSourcePropertiesMap null;ResultSet rs null;try {dataSourcePropertiesMap new HashMap();// DbConstant.DS_DB_SQL 为查询数据库中配置的多租户的数据源配置信息的SQL如// SELECT * FROM DATABASE_CONFIG rs statement.executeQuery(DbConstant.DS_DB_SQL);while (rs.next()) {DataSourceProperty property new DataSourceProperty();String databaseCode rs.getString(DbConstant.DatabaseConfigField.DATABASE_CODE);property.setDriverClassName(rs.getString(DbConstant.DatabaseConfigField.DRIVER_CLASS));property.setUrl(rs.getString(DbConstant.DatabaseConfigField.DATABASE_URL));property.setUsername(rs.getString(DbConstant.DatabaseConfigField.USER_NAME));property.setPassword(AESUtil.decrypt(rs.getString(DbConstant.DatabaseConfigField.USER_PASSWORD)));property.setLazy(DS_DATASOURCE_LAZY);// 设置Druid配置String druidConfig rs.getString(DbConstant.DatabaseConfigField.DRUID_CONFIG);property.setDruid(getDruidConfig(druidConfig));dataSourcePropertiesMap.put(databaseCode, property);}} catch (SQLException e) {log.error(查询DB数据源配置异常, e);} finally {try {if (rs ! null) {rs.close();}} catch (SQLException e) {log.error(数据库ResultSet资源释放异常, e);}try {statement.close();} catch (SQLException e) {log.error(数据库Statement资源释放异常, e);}}log.info(初始化加载DB库中数据源完成);return dataSourcePropertiesMap;}};}自定义负载均衡策略 如下图slave组下有三个数据源当用户使用slave切换数据源时会使用负载均衡算法。 系统自带了两个负载均衡算法 LoadBalanceDynamicDataSourceStrategy 轮询,是默认的。 RandomDynamicDataSourceStrategy 随机的。 spring:datasource:dynamic:datasource:master:username: sapassword: url: jdbc:h2:mem:testdriver-class-name: org.h2.Driverschema: db/schema.sqlslave_1:username: sapassword: url: jdbc:h2:mem:testdriver-class-name: org.h2.Driverslave_2:username: sapassword: url: jdbc:h2:mem:testdriver-class-name: org.h2.Driverslave_3:username: sapassword: url: jdbc:h2:mem:testdriver-class-name: org.h2.Driverstrategy: com.baomidou.dynamic.datasource.strategy.LoadBalanceDynamicDataSourceStrategy如何自定义 如果默认的两个都不能满足要求可以参考源码自定义。 暂时只能全局更改。 import java.util.List; import java.util.concurrent.ThreadLocalRandom; import javax.sql.DataSource;public class RandomDynamicDataSourceStrategy implements DynamicDataSourceStrategy {public RandomDynamicDataSourceStrategy() {}public DataSource determineDataSource(ListDataSource dataSources) {return (DataSource)dataSources.get(ThreadLocalRandom.current().nextInt(dataSources.size()));} }多数据源懒启动配置 懒启动连接池创建出来后并不会立即初始化连接池等需要使用connection的时候再初始化。 暂时只支持Druid和HikariCp和BeeCp连接池。 主要场景可能适合于数据源很多又不需要启动立即初始化的情况可以减少系统启动时间。 缺点在于如果参数配置有误则启动的时候不知道初始化的时候失败可能一直抛异常。 配置使用 spring:datasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.lazy: true #默认false非懒启动系统加载到数据源立即初始化连接池datasource:master:url: jdbc:mysql://xx.xx.xx.xx:3306/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverlazy: true #表示这个数据源懒启动db1:url: jdbc:mysql://xx.xx.xx.xx:3307/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverdb2:url: jdbc:mysql://xx.xx.xx.xx:3307/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver3. 参考资料 从3.4.0开始可以注入多个DynamicDataSourceProvider的Bean以实现同时从多个不同来源加载数据源注意同名会被覆盖。 dynamic-datasource GitHub 仓库 ↗dynamic-datasource 的官方 GitHub 仓库包含源代码、文档和示例等资源。
http://www.zqtcl.cn/news/968025/

相关文章:

  • 怎么用目录建wordpress站点怎样开发wordpress主题
  • 免费网站排名优化在线南通科技网站建设
  • 辽宁网站建设招标怎么建设像天猫的网站
  • 新闻类网站排版网站建设东莞正规网站建设
  • 网站开发亿玛酷出名5重庆公司买深圳社保
  • 网站建设开发报价单苏州网上注册公司流程
  • 网站开发包含河南洛阳网络公司
  • 个人网站建设方案书使用几号纸网站出租目录做菠菜 有什么坏处
  • 烟台做网站案例产品设计欣赏
  • 长安网站建设多少钱室内设计学校培训的
  • 驻马店北京网站建设怎么用网站做转换服务器
  • 成都网站建设cdxwcx百度搜索关键词排名优化推广
  • 框架网站怎么做o2o是什么意思的
  • 山东响应式网站网页设计素材电影
  • 新都区网站建设网站设计公司排行榜
  • 网站建设需求分析调研表建筑品牌网站
  • html5商城网站如何查询网站建设者
  • 做重视频网站教育网站改版方案
  • 小网站谁有网站上线后做什么
  • 松江网站建设培训手机网站你们
  • 荆州网站建设 众火网北京小客车指标调控管理信息系统
  • 域名和网站一样吗自己开发小程序要多少钱
  • 咨询公司网站源码手机优化软件哪个好用
  • 行业网站模板小型影视网站源码
  • 湖北网站建站系统哪家好微信小程序怎么注销账号
  • 温州网站推广公司沈阳网站建设服务电话
  • 2019年的阜南县建设修路网站洛阳哪里有做网站的
  • 家里电脑可以做网站服务器吗佛山网络公司哪家最好
  • 做网站属于无形资产还是费用网站制作二维码
  • ps为什么做不了视频网站最近做网站开发有前途没