• 鸟窝
    置顶
    2020-11-25
    这一讲和下一讲的代码在 https://github.com/smallnest/distributed
    共 1 条评论
    8
  • K菌无惨
    2021-01-23
    老师, Locker是超时解锁是通过NewSession时添加WithTTL这个SessionOption来设置的吗

    作者回复: 对

    
    1
  • gone with the win...
    2023-04-01 来自广东
    module declares its path as: go.etcd.io/bbolt but was required as: github.com/coreos/bbolt 例子现在运行不起来了

    作者回复: 看最新的代码https://github.com/smallnest/distributed

    
    
  • tianfeiyu
    2021-08-04
    老师,问一下您这边有用过 redis 相关的分布式的并发原语库吗

    作者回复: redis最常用的就是分布式锁

    
    
  • types
    2021-07-02
    关于leader选举,几个问题: 1. 如何获取从节点的信息?? 2. leader选举成功后, resign是只有主节点可以发起吗,还是从节点也可以发起resign

    作者回复: 我认为你这里的说的主节点和从节点,leader指的都是应用程序的,而不是etcd的。 1.没办法获取,分布式锁不负责这个职责。你可以通过etcd的节点实现,这也是服务发现实现的逻辑 2.主节点

    
    
  • Kepler
    2020-12-10
    类似zookeeper 的分布式锁原理,节点宕机对应session 销毁,持有的锁会被释放
    
    8
  • 那时刻
    2020-11-23
    关于思考题, 如果持有互斥锁或者读写锁的节点意外宕机了,从调用接口来看,与当前节点启动的session有关系,节点宕机之后,感觉应该有与该session相关的处理,比如超时机制,所以它持有的锁会被释放。 etcd 提供的读写锁,按照rwmutex的实现写锁应该比读锁优先级高,但是在分布式环境下,如此实现的话,我想会增加复杂度和出问题的几率。
    
    1
  • 文武木子
    2022-03-20
    Redis实现分布式锁大家用的多吗
    
    
  • myrfy
    2020-11-23
    还没来得及去看etcd库的代码,盲猜一下。 第一个问题,我觉得要看场景,如果被锁住的资源可以被重新分配,我相信etcd能检测到持有锁的节点断开,concurrent包里应该有相关的实现把锁释放。但是,如果被锁住的资源非常重要,影响到整个系统的状态,必须要人工介入才能把破损的数据修复,那这个时候自动释放锁反而可能完成更大规模的损失。 第二个问题,还是得去看代码再说
    
    