Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
9545aaa4
Commit
9545aaa4
authored
Oct 21, 2022
by
tangwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加配置
parent
ae8b3454
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
0 deletions
+48
-0
RedisClusterConfig.java
.../java/com/yeejoin/amos/fas/config/RedisClusterConfig.java
+48
-0
No files found.
amos-boot-module/amos-boot-module-biz/amos-boot-module-fas-biz/src/main/java/com/yeejoin/amos/fas/config/RedisClusterConfig.java
0 → 100644
View file @
9545aaa4
package
com
.
yeejoin
.
amos
.
fas
.
config
;
import
com.yeejoin.amos.boot.biz.config.RedisConfigProperties
;
import
io.lettuce.core.ClientOptions
;
import
io.lettuce.core.cluster.ClusterClientOptions
;
import
io.lettuce.core.cluster.ClusterTopologyRefreshOptions
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisClusterConfiguration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration
;
import
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory
;
import
java.time.Duration
;
@Configuration
public
class
RedisClusterConfig
{
@Autowired
private
RedisConfigProperties
redisConfigProperties
;
@Bean
@ConditionalOnProperty
(
name
=
"spring.redis.mode"
,
havingValue
=
"cluster"
)
public
RedisConnectionFactory
redisConnectionFactory
()
{
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions
clusterTopologyRefreshOptions
=
ClusterTopologyRefreshOptions
.
builder
()
.
enableAllAdaptiveRefreshTriggers
()
// 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.
adaptiveRefreshTriggersTimeout
(
Duration
.
ofSeconds
(
30
))
//自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.
enablePeriodicRefresh
(
Duration
.
ofSeconds
(
20
))
// 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.
build
();
ClientOptions
clientOptions
=
ClusterClientOptions
.
builder
()
.
topologyRefreshOptions
(
clusterTopologyRefreshOptions
)
.
build
();
// 客户端读写分离配置
LettuceClientConfiguration
clientConfig
=
LettuceClientConfiguration
.
builder
()
.
clientOptions
(
clientOptions
)
.
build
();
RedisClusterConfiguration
redisClusterConfiguration
=
new
RedisClusterConfiguration
(
redisConfigProperties
.
getCluster
().
getNodes
());
if
(
StringUtils
.
isNotBlank
(
redisConfigProperties
.
getPassword
()))
{
redisClusterConfiguration
.
setPassword
(
redisConfigProperties
.
getPassword
());
}
return
new
LettuceConnectionFactory
(
redisClusterConfiguration
,
clientConfig
);
}
}
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