Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-qc-change-system
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yx-qc-change-flow
yanxuan-qc-change-system
Commits
e7410c0d
Commit
e7410c0d
authored
Apr 26, 2025
by
韩兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 调整db配置
parent
0bb233d2
Pipeline
#74700
passed with stages
in 2 minutes 8 seconds
Changes
6
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
257 additions
and
0 deletions
+257
-0
pom.xml
pom.xml
+13
-0
pom.xml
yanxuan-qc-change-system-dal/pom.xml
+8
-0
DataSourceConfiguration.java
...il/yanxuan/change/dal/config/DataSourceConfiguration.java
+114
-0
DrmDBConfig.java
...m/netease/mail/yanxuan/change/dal/config/DrmDBConfig.java
+32
-0
DrmRedisConfig.java
...etease/mail/yanxuan/change/dal/config/DrmRedisConfig.java
+49
-0
RedisSentinelConfig.java
...e/mail/yanxuan/change/dal/config/RedisSentinelConfig.java
+41
-0
No files found.
pom.xml
View file @
e7410c0d
...
@@ -44,6 +44,7 @@
...
@@ -44,6 +44,7 @@
<!-- store-db -->
<!-- store-db -->
<mysql.version>
5.1.34
</mysql.version>
<mysql.version>
5.1.34
</mysql.version>
<mybatis.spring.boot.starter.version>
1.1.1
</mybatis.spring.boot.starter.version>
<mybatis.spring.boot.starter.version>
1.1.1
</mybatis.spring.boot.starter.version>
<druid.version>
1.0.21
</druid.version>
<!-- store-redis -->
<!-- store-redis -->
<redis.clients.version>
2.9.0
</redis.clients.version>
<redis.clients.version>
2.9.0
</redis.clients.version>
...
@@ -62,6 +63,7 @@
...
@@ -62,6 +63,7 @@
<commons.lang.version>
2.4
</commons.lang.version>
<commons.lang.version>
2.4
</commons.lang.version>
<des.version>
1.0.2-SNAPSHOT
</des.version>
<des.version>
1.0.2-SNAPSHOT
</des.version>
<mapstruct.version>
1.3.1.Final
</mapstruct.version>
<mapstruct.version>
1.3.1.Final
</mapstruct.version>
<pandora.version>
1.1.0-SNAPSHOT
</pandora.version>
</properties>
</properties>
<!-- 子模块可选依赖 -->
<!-- 子模块可选依赖 -->
...
@@ -184,6 +186,17 @@
...
@@ -184,6 +186,17 @@
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<version>
${mybatis.spring.boot.starter.version}
</version>
<version>
${mybatis.spring.boot.starter.version}
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid
</artifactId>
<version>
${druid.version}
</version>
</dependency>
<!--引入潘多拉-->
<dependency>
<groupId>
com.netease.yanxuan
</groupId>
<artifactId>
pandora
</artifactId>
<version>
${pandora.version}
</version>
</dependency>
<!-- store-redis -->
<!-- store-redis -->
<dependency>
<dependency>
...
...
yanxuan-qc-change-system-dal/pom.xml
View file @
e7410c0d
...
@@ -26,6 +26,14 @@
...
@@ -26,6 +26,14 @@
<groupId>
mysql
</groupId>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid
</artifactId>
</dependency>
<dependency>
<groupId>
com.netease.yanxuan
</groupId>
<artifactId>
pandora
</artifactId>
</dependency>
<!--store-redis-->
<!--store-redis-->
<dependency>
<dependency>
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/config/DataSourceConfiguration.java
0 → 100644
View file @
e7410c0d
package
com
.
netease
.
mail
.
yanxuan
.
change
.
dal
.
config
;
import
com.alibaba.druid.filter.stat.StatFilter
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig
;
import
com.google.common.collect.ImmutableSet
;
import
com.google.common.collect.Lists
;
import
com.netease.yanxuan.pandora.DataSourceRefresher
;
import
com.netease.yanxuan.pandora.spring.annotation.EnableDataSourceRefresh
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.mybatis.spring.SqlSessionFactoryBean
;
import
org.mybatis.spring.SqlSessionTemplate
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
javax.sql.DataSource
;
import
java.util.Set
;
/**
* @author hzfengyuexin@corp.netease.com
*/
@Configuration
@EnableTransactionManagement
@EnableApolloConfig
(
"db-public"
)
@EnableDataSourceRefresh
@MapperScan
(
basePackages
=
"com.netease.mail.yanxuan.change.dal.mapper"
,
sqlSessionFactoryRef
=
"sqlSessionFactoryBean"
)
public
class
DataSourceConfiguration
{
@Autowired
private
DrmDBConfig
drmDBConfig
;
/**
* pandora热切换数据源
* */
@Bean
public
DataSourceRefresher
dataSourceRefresher
()
{
DataSourceRefresher
dataSourceRefresher
=
new
DataSourceRefresher
(
"db-public"
);
Set
<
String
>
dataSource
=
ImmutableSet
.
of
(
"db.url"
,
"db.driverClassName"
,
"db.username"
,
"db.password"
);
dataSourceRefresher
.
bindDataSourceWithPropertyKey
(
"dataSource"
,
dataSource
);
return
dataSourceRefresher
;
}
/**
* merchant-order-db数据源
*/
@Bean
(
name
=
"dataSource"
)
@Primary
public
DataSource
dataSource
()
{
DruidDataSource
dataSource
=
new
DruidDataSource
();
dataSource
.
setDriverClassName
(
drmDBConfig
.
getDriverClassName
());
dataSource
.
setUrl
(
drmDBConfig
.
getUrl
());
dataSource
.
setUsername
(
drmDBConfig
.
getUserName
());
dataSource
.
setPassword
(
drmDBConfig
.
getPassword
());
// 初始连接数
dataSource
.
setInitialSize
(
1
);
// 最大连接数
dataSource
.
setMaxActive
(
50
);
// 最小空闲连接数
dataSource
.
setMinIdle
(
10
);
// 配置获取连接等待超时的时间
dataSource
.
setMaxWait
(
60000
);
dataSource
.
setValidationQuery
(
"SELECT 'x'"
);
dataSource
.
setTestOnBorrow
(
true
);
dataSource
.
setTestOnReturn
(
false
);
dataSource
.
setTestWhileIdle
(
true
);
// 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
dataSource
.
setTimeBetweenEvictionRunsMillis
(
60000
);
dataSource
.
setMinEvictableIdleTimeMillis
(
300000
);
StatFilter
filter
=
new
StatFilter
();
filter
.
setSlowSqlMillis
(
5000
);
filter
.
setLogSlowSql
(
true
);
filter
.
setMergeSql
(
true
);
dataSource
.
setProxyFilters
(
Lists
.
newArrayList
(
filter
));
return
dataSource
;
}
@Bean
(
name
=
"sqlSessionFactoryBean"
)
@Primary
public
SqlSessionFactoryBean
sqlSessionFactoryBean
()
throws
Exception
{
SqlSessionFactoryBean
sqlSessionFactoryBean
=
new
SqlSessionFactoryBean
();
sqlSessionFactoryBean
.
setDataSource
(
dataSource
());
sqlSessionFactoryBean
.
setTypeAliasesPackage
(
"com.netease.mail.yanxuan.change.dal.entity,"
+
"com.netease.mail.yanxuan.change.dal.meta.model.po"
);
Resource
[]
resources
=
new
PathMatchingResourcePatternResolver
().
getResources
(
"classpath:mybatis/mapper/*.xml"
);
sqlSessionFactoryBean
.
setMapperLocations
(
resources
);
org
.
apache
.
ibatis
.
session
.
Configuration
configuration
=
new
org
.
apache
.
ibatis
.
session
.
Configuration
();
configuration
.
setMapUnderscoreToCamelCase
(
true
);
configuration
.
setCacheEnabled
(
true
);
sqlSessionFactoryBean
.
setConfiguration
(
configuration
);
return
sqlSessionFactoryBean
;
}
@Primary
@Bean
(
name
=
"sqlSessionTemplate"
)
public
SqlSessionTemplate
sqlSessionTemplate
(
SqlSessionFactory
sqlSessionFactory
)
{
return
new
SqlSessionTemplate
(
sqlSessionFactory
);
}
/**
* 用于事务管理
*/
@Bean
(
name
=
"transactionManager"
)
@Primary
public
PlatformTransactionManager
transactionManager
()
{
return
new
DataSourceTransactionManager
(
dataSource
());
}
}
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/config/DrmDBConfig.java
0 → 100644
View file @
e7410c0d
package
com
.
netease
.
mail
.
yanxuan
.
change
.
dal
.
config
;
import
com.ctrip.framework.apollo.Config
;
import
com.ctrip.framework.apollo.spring.annotation.ApolloConfig
;
import
com.ctrip.framework.apollo.spring.annotation.EnableAutoUpdateApolloConfig
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* @author hzfengyuexin@corp.netease.com
*/
@Data
@Component
@EnableAutoUpdateApolloConfig
(
"db-public"
)
public
class
DrmDBConfig
{
@ApolloConfig
(
"db-public"
)
private
Config
config
;
@Value
(
"${db.url:}"
)
private
String
url
;
@Value
(
"${db.username:}"
)
private
String
userName
;
@Value
(
"${db.password:}"
)
private
String
password
;
@Value
(
"${db.driverClassName:}"
)
private
String
driverClassName
;
}
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/config/DrmRedisConfig.java
0 → 100644
View file @
e7410c0d
/**
* @(#)DlockConfig.java, 2018/9/7.
* <p/>
* Copyright 2018 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
dal
.
config
;
import
com.ctrip.framework.apollo.Config
;
import
com.ctrip.framework.apollo.spring.annotation.ApolloConfig
;
import
com.ctrip.framework.apollo.spring.annotation.EnableAutoUpdateApolloConfig
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* @author hzcaitianyu (hzcaitianyu@corp.netease.com)
*/
@Component
@EnableAutoUpdateApolloConfig
(
"db-redis"
)
@Data
public
class
DrmRedisConfig
{
@ApolloConfig
(
"db-redis"
)
private
Config
config
;
@Value
(
"${redis.master:}"
)
private
String
master
;
@Value
(
"${redis.nodes:}"
)
private
String
nodes
;
@Value
(
"${redis.password:}"
)
private
String
password
;
@Value
(
"${redis.maxTotal:50}"
)
private
Integer
maxTotal
;
@Value
(
"${redis.maxIdle:20}"
)
private
Integer
maxIdle
;
@Value
(
"${redis.minIdle:1}"
)
private
Integer
minIdle
;
@Value
(
"${redis.maxWaitMillis:5000}"
)
private
Integer
maxWaitMillis
;
}
\ No newline at end of file
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/config/RedisSentinelConfig.java
0 → 100644
View file @
e7410c0d
package
com
.
netease
.
mail
.
yanxuan
.
change
.
dal
.
config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.pool2.impl.GenericObjectPoolConfig
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.RedisPassword
;
import
org.springframework.data.redis.connection.RedisSentinelConfiguration
;
import
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory
;
import
org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration
;
import
java.util.Arrays
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* redis文件配置
*/
@Slf4j
@Configuration
public
class
RedisSentinelConfig
{
@Autowired
private
DrmRedisConfig
drmRedisConfig
;
@Bean
public
RedisConnectionFactory
lettuceConnectionFactory
()
{
Set
<
String
>
nodes
=
Arrays
.
stream
(
drmRedisConfig
.
getNodes
().
split
(
","
)).
collect
(
Collectors
.
toSet
());
RedisSentinelConfiguration
redisSentinelConfiguration
=
new
RedisSentinelConfiguration
(
drmRedisConfig
.
getMaster
(),
nodes
);
redisSentinelConfiguration
.
setPassword
(
RedisPassword
.
of
(
drmRedisConfig
.
getPassword
()));
GenericObjectPoolConfig
genericObjectPoolConfig
=
new
GenericObjectPoolConfig
();
genericObjectPoolConfig
.
setMaxIdle
(
drmRedisConfig
.
getMaxIdle
());
genericObjectPoolConfig
.
setMinIdle
(
drmRedisConfig
.
getMinIdle
());
genericObjectPoolConfig
.
setMaxTotal
(
drmRedisConfig
.
getMaxTotal
());
genericObjectPoolConfig
.
setMaxWaitMillis
(
drmRedisConfig
.
getMaxWaitMillis
());
LettucePoolingClientConfiguration
lettuceClientConfiguration
=
LettucePoolingClientConfiguration
.
builder
().
poolConfig
(
genericObjectPoolConfig
).
build
();
return
new
LettuceConnectionFactory
(
redisSentinelConfiguration
,
lettuceClientConfiguration
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment