zoukankan      html  css  js  c++  java
  • 分布式锁实现

    分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。

    同一进程多线程 互斥 典型的场景 生产者消费模式

    1.多线程 同时抢锁

    2.只有一个线程抢到 未抢到的阻塞 或者下次再抢。

    3 抢到锁的线程操作资源

    4释放锁。

    同一进程 多线程互斥

    (1)多个进程同时抢锁

    (2)只一个进程抢到,未抢到的阻塞,或下次再来抢

    (3)抢到锁的进程操作临界资源

    (4)操作完临界资源后释放锁

    分布式环境下多进程互斥

    (1)多台机器上多个进程对这个锁进行争抢,例如在缓存上同时进行set key=123操作

    (2)只有一个进程会抢到这个锁,即只有一个进程对缓存set key=123能够成功,不成功的进程下次再来抢

    (3)抢到锁的进程对余额进行扣减

    (4)扣减完成之后释放锁,即对缓存delete key=123

  • 相关阅读:
    达梦常用命令
    sqlserver命令
    db2常用命令
    docker常用命令
    linux常用命令
    vim常用命令
    cpu、内存、io、内存、负载
    3.系统状态监控
    10 innodb之关键特性刷新邻接页
    9 innodb关键特性之自适应哈希索引03
  • 原文地址:https://www.cnblogs.com/itxuexiwang/p/6744446.html
Copyright © 2011-2022 走看看