分布式架构一定会用到分布式锁。目前公司使用的基于redis的redisson分布式锁。
应用场景:1.订单修改操作,首先要获取该订单的分布式锁,能取到才能去操作。
lockey可以是订单的主键id。
2,.库存操作,也要按照客户+仓库+sku维护锁定该库存,进行操作。
一代码
1.Redisson管理类
public class RedissonManager {
private static RedissonClient redisson;
static {
Config config = new Config();
config.useSentinelServers()
.addSentinelAddress("redis://127.0.0.1:26379","redis://127.0.0.1:7301", "redis://127.0.0.1:7302")
.setMasterName("mymaster")
.setReadMode(ReadMode.SLAVE)
.setTimeout(10000).setDatabase(0).setPassword("123***");
redisson = Redisson.create(config);
}
/**
* 获取Redisson的实例对象
* @return
*/
public static RedissonClient getRedisson(){ return redisson;}
}
2、分布式锁
import org.redisson