mysql分布式锁的坑------ 墨菲定律:有可能出错的事情,终将出错

   用mysql唯一key做分布式锁, 虽然简单, 但坑太多, 来看看:

    1.  在高并发场景下, 用mysql做分布式锁, 简直是想找死。

        这种问题, 不要选mysql分布式锁, 别作死。

     2.  业务准备释放锁的时候, 进程被正常重启了, 或者异常崩溃了,或者掉电了, 锁永远无法释放。 这个坑, 踩过。 四个人, 通宵修数据, 呵呵哒。   墨菲定律告诉我们:有可能出错的事情,终将出错。

         这种问题,也并不是毫无办法的,有办法。

     3.  业务释放锁时, 如果操作mysql超时(原因多多, 比如网络原因, 比如mysql挂了), 锁释放失败, 便永远无法释放了。 这个坑, 遇到过。

       这种问题,也并不是毫无办法的,有办法。

     4.  当两个接口中都有加锁的代码时, 如果他们之间有调用关系, 那就呵呵哒了,直接死锁。 这个坑,遇到过。

       这种问题, 实际上就是要解决非重入锁的问题, 想办法搞成可重入的锁吧。

    缺点多多, 有办法完善, 但慎用。

发布了2213 篇原创文章 · 获赞 4564 · 访问量 1977万+

猜你喜欢

转载自blog.csdn.net/stpeace/article/details/100188760