zoukankan      html  css  js  c++  java
  • springboot集成巨杉数据库

    springboot倾向于约定优于配置,所以大大简化了搭建项目的流程,包括各种数据源的配置,接下来就和大家分享下最近用到的巨杉数据源连接池的配置

    1、现在配置文件中定义巨杉连接池的各种连接信息,至于每个参数代表的意义大家可以参考巨杉官网给出的连接池的配置

      

     1 sdb.connectTimeout=500
     2 sdb.maxAutoConnectRetry=0
     3 sdb.maxCount=500
     4 sdb.detalIncCount=20
     5 sdb.maxIdelCount=20
     6 sdb.keepAliveTimeout=0
     7 sdb.checkInterval=60000
     8 sdb.syncCoordIntercal=0
     9 sdb.validateConntion=false
    10 
    11 
    12 sdb.username=sdbadmin
    13 sdb.password=sdbadmin

    2、进行连接池的配置

      

     1 package com.xbsafe.common.sequaioDB;
     2 
     3 import java.util.Arrays;
     4 import java.util.List;
     5 
     6 import org.springframework.beans.factory.annotation.Autowired;
     7 import org.springframework.beans.factory.annotation.Qualifier;
     8 import org.springframework.beans.factory.annotation.Value;
     9 import org.springframework.boot.context.properties.ConfigurationProperties;
    10 import org.springframework.context.annotation.Bean;
    11 import org.springframework.context.annotation.Configuration;
    12 import org.springframework.context.annotation.PropertySource;
    13 import org.springframework.stereotype.Component;
    14 
    15 import com.sequoiadb.net.ConfigOptions;
    16 import com.sequoiadb.base.SequoiadbDatasource;
    17 import com.sequoiadb.datasource.ConnectStrategy;
    18 import com.sequoiadb.datasource.DatasourceOptions;
    19 
    20 /**
    21  * 巨杉数据库连接池配置类
    22  * @author zhouliang
    23  * @date 2017年9月20日
    24  */
    25 @Component
    26 @PropertySource("classpath:sequaiodb.properties")
    27 public class SdbConfig {
    28     @Value("${sdb.connectTimeout}") private String connectTimeout;
    29     @Value("${sdb.maxAutoConnectRetry}") private int maxAutoConnectRetry;
    30     @Value("${sdb.maxCount}") private int maxCount;
    31     @Value("${sdb.detalIncCount}") private int detalIncCount;
    32     @Value("${sdb.maxIdelCount}") private int maxIdelCount;
    33     @Value("${sdb.keepAliveTimeout}") private int keepAliveTimeout;
    34     @Value("${sdb.checkInterval}") private int checkInterval;
    35     @Value("${sdb.syncCoordIntercal}") private int syncCoordIntercal;
    36     @Value("${sdb.validateConntion}") private boolean validateConntion;
    37     
    38     @Value("${sdb.username}") private String username;
    39     @Value("${sdb.password}") private String password;
    40     @Value("${sdb.serverlist}") private String serverlist;
    41     
    42     
    43     @Bean(name="sdbDataSource")
    44     @Autowired
    45     public SequoiadbDatasource sequoiadbDatasource(@Qualifier("sdb.datasource.nwOpt")ConfigOptions nwOpt,
    46             @Qualifier("sdb.datasource.dsOpt")DatasourceOptions dsOpt){
    47         List<String> serverList = Arrays.asList(serverlist.split(";"));
    48         return new SequoiadbDatasource(serverList, username, password, nwOpt,dsOpt);
    49     }
    50     
    51     @Bean(name="sdb.datasource.nwOpt")
    52     public ConfigOptions configOptions(){
    53         ConfigOptions nwOpt = new ConfigOptions();
    54 //        nwOpt.setConnectTimeout(connectTimeout); 
    55         nwOpt.setMaxAutoConnectRetryTime(maxAutoConnectRetry); 
    56         return nwOpt;
    57     } 
    58     @Bean(name="sdb.datasource.dsOpt")
    59     public DatasourceOptions datasourceOptions(){
    60         DatasourceOptions dsOpt = new DatasourceOptions();
    61         dsOpt.setMaxCount(maxCount);                     // 连接池最多能提供500个连接。
    62         dsOpt.setDeltaIncCount(detalIncCount);           // 每次增加20个连接。
    63         dsOpt.setMaxIdleCount(maxIdelCount);             // 连接池空闲时,保留20个连接。
    64         dsOpt.setKeepAliveTimeout(keepAliveTimeout);     // 池中空闲连接存活时间。单位:毫秒。0表示不关心连接隔多长时间没有收发消息。
    65         dsOpt.setCheckInterval(checkInterval);          // 每隔60秒将连接池中多于MaxIdleCount限定的空闲连接关闭.并将存活时间过长(连接已停止收发超过keepAliveTimeout时间)的连接关闭。
    66         dsOpt.setSyncCoordInterval(syncCoordIntercal);     // 向catalog同步coord地址的周期。单位:毫秒。
    67         dsOpt.setValidateConnection(validateConntion);     // 连接出池时,是否检测连接的可用性,默认不检测。0表示不同步。
    68         dsOpt.setConnectStrategy(ConnectStrategy.BALANCE); // 默认使用coord地址负载均衡的策略获取连接。
    69         return dsOpt;
    70     }
    71 }
  • 相关阅读:
    CentOS 8配置神奇的自动挂载光驱文件夹misc
    Linux预定义通配符及实例
    history历史记录增加显示时间和用户
    CentOS 8 命令行更改系统语言
    使用screen实现多终端同步显示
    在MobaXtrem使用CentOS 上的图形工具
    CentOS中id前10的用户
    添加硬盘后不重启使系统识别新硬盘
    bash默认启用的内部命令
    九、分页查询
  • 原文地址:https://www.cnblogs.com/gulang-jx/p/7572252.html
Copyright © 2011-2022 走看看