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 }
  • 相关阅读:
    #特征方程,dp,快速幂#洛谷 4451 [国家集训队]整数的lqp拆分
    #状压dp,贪心#CF1316E Team Building
    #线段树,欧拉函数#CF1114F Please, another Queries on Array?
    #启发式合并,链表#洛谷 3201 [HNOI2009] 梦幻布丁
    #树状数组#洛谷 4113 [HEOI2012]采花
    #链表#洛谷 3794 签到题IV
    #矩阵乘法,斐波那契#洛谷 2544 [AHOI2004] 数字迷阵
    #dp#洛谷 4399 [JSOI2008]Blue Mary的职员分配
    #同余最短路#洛谷 3403 跳楼机
    #网络流,分层图#洛谷 4400 [JSOI2008] Blue Mary的旅行
  • 原文地址:https://www.cnblogs.com/gulang-jx/p/7572252.html
Copyright © 2011-2022 走看看