在单机环境下,多线程同时访问变量可以用锁实现,但服务做集群呢 也就是多进程的情况,就没办法了,就需要分布式锁,跨jvm,就要保证一个方法或变量在同一个线程执行。
基于数据库实现分布式锁;基于缓存redis等实现分布式锁;基于Zookeeper实现分布式锁。
数据库只要是加一张表,有唯一索引不让重复加入 //todo
redis的话也是当key不存在就设置一个key为val字符串 返回1,,存在就返回0,还可以设置锁的超时时间。todo
在单机环境下,多线程同时访问变量可以用锁实现,但服务做集群呢 也就是多进程的情况,就没办法了,就需要分布式锁,跨jvm,就要保证一个方法或变量在同一个线程执行。
基于数据库实现分布式锁;基于缓存redis等实现分布式锁;基于Zookeeper实现分布式锁。
数据库只要是加一张表,有唯一索引不让重复加入 //todo
redis的话也是当key不存在就设置一个key为val字符串 返回1,,存在就返回0,还可以设置锁的超时时间。todo