测试工具
2026/1/30小于 1 分钟
怎么验证双重判定锁生效(如何测试)?
方法1:压测并检查DB请求次数
思路:模拟缓存失效,验证高并发下只有一个线程访问数据库
步骤:
- 手动删除缓存中的key(模拟失效)
- 使用JMeter发送1000+并发请求
- 监控数据库查询日志
预期结果:数据库只记录1次查询,证明双重判定锁成功拦截并发请求
方法2:线程ID日志验证
实现:在数据库查询前添加线程ID日志
log.info("Thread {} is querying DB", Thread.currentThread().getId());验证:压测后只应看到一条线程ID日志,如:
Thread 23 is querying DB方法3:CountDownLatch并发测试
代码示例:
CountDownLatch latch = new CountDownLatch(1);
ExecutorService pool = Executors.newFixedThreadPool(100);
for (int i = 0; i < 100; i++) {
pool.submit(() -> {
latch.await(); // 等待同时释放
getData("hotKey");
});
}
latch.countDown(); // 所有线程同时执行验证:检查数据库日志,只出现1次查询即证明双重判定锁有效