Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src
README.md
pom.xml

README.md

Distribute Lock

可使用简单的Java编码模式或基于注解模式快速实现分布式锁

目前有三种实现(也可以说是两种)

  • 基于Redisson
  • 基于Spring Data Redis
  • 基于Zookeeper

注解模式

@Component
public class TestService {

	public static int i = 0;

	@Lock(prefixClass = TestService.class, key = "#args[0]") // key = "#id" 也是可以的
	public void lockTest(Long id) {
		i++;
	}
}

编码模式

// 提供key以及action
public void redissonLockTest() {
		dLock.tryLockAndAction(() -> "redisson-lockInner", () -> success ++);
	}

配置请看test目录下的application.yml结合DLockConfigProperty这个类

并发量

压测使用JUnit结合contiperf,代码请看test

Redisson > Spring Data > Zookeeper

可靠性方面 Zookeeper > Redisson = Spring Data