本帖最后由 wjhdtx 于 2014-11-26 18:34 编辑
zookeeper的分布式锁试了以下,问题也不少;@desehawk 提供的redis分布式锁测试效率挺高,加到hadoop中就不行。
加了分布式锁会使程序的运行效率变得很低。
我打算暂不使用分布式锁了,因为
-
- if(redis.sIsMember(lpSetKey.getBytes(), loginIp.getBytes()))
- {
- lp = 1;
- redis.sAdd(lpSetKey.getBytes(), loginIp.getBytes())
- }
复制代码
这个代码的执行是非常快的,应该是毫秒级别,多个map并行运行时发生线程安全的可能性很低,我自己也做了测试。
如果想要100%的准确性,建议执行多个作业来完成,当然可以把需要去重的数据从原有日志中分离,减少运行时间,见招拆招了。
|