Skip to content

Commit

Permalink
feat($Redis): integrate with Redis distributed lock for concurrency c…
Browse files Browse the repository at this point in the history
…ontrol

integrate with Redis distributed lock for concurrency control

BREAKING CHANGE: integrate with Redis distributed lock for concurrency control
  • Loading branch information
johnnymillergh committed Feb 23, 2022
1 parent 0f4dff5 commit 85bf9bc
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
10 changes: 10 additions & 0 deletions spring-cloud-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,16 @@
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

<!-- Spring Integration -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
</dependency>

<!-- OSS Dependencies -->
<dependency>
<groupId>io.minio</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
WebMvcConfiguration.class,
MyBatisPlusConfiguration.class,
RedisConfiguration.class,
DistributedLockConfiguration.class,
ElasticsearchConfiguration.class,
WebSecurityConfiguration.class,
RestTemplateConfiguration.class,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.jmsoftware.maf.springcloudstarter.configuration;

import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.integration.redis.util.RedisLockRegistry;

/**
* <h1>DistributedLockConfiguration</h1>
* <p>
* Change description here.
*
* @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com, 2/23/22 7:51 AM
**/
@Slf4j
@ConditionalOnClass({RedisLockRegistry.class})
public class DistributedLockConfiguration {
private static final String REGISTRY_KEY = "redis-lock";

@Bean(destroyMethod = "destroy")
public RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) {
val redisLockRegistry = new RedisLockRegistry(redisConnectionFactory, REGISTRY_KEY);
log.warn("RedisLockRegistry bean is created. {}", redisLockRegistry);
return redisLockRegistry;
}
}

0 comments on commit 85bf9bc

Please sign in to comment.