/DistributedJob-Redis

分布式任务,基于Redis实现

Primary LanguageJava

项目

  • 分布式锁Jedis实现

测试

  • 测试类:DemoApplicationTests.java 模拟账户余额修改场景(部分请求减1,部分线程加1)
  • 测试用例:未使用分布式锁,用多个线程模拟并发执行账户余额修改,发现余额不准确。
  • 测试用例:使用分布式锁,用多个线程模拟并发执行账户余额修改,能准确加减余额。
  • 测试用例:使用分布式锁,用多个线程模拟并发执行账户余额修改,业务处理出现异常,验证锁是否死锁。
  • 测试用例:使用分布式锁,用多个线程模拟并发执行账户余额修改,sleep时间超过锁的时间,验证锁是否死锁。————不会死锁,但余额不正确,需要注意超时的设置和处理,当然本场景使用数据库乐观锁更安全。使用哪种方案也要考虑业务的逻辑。

参考文档