动物园管理员 锁 使用 短暂的节点 。短暂节点是一个生存的节点,只要创建它的会话是活动的。创建会话的过程会定期向zookeeper发送心跳消息,从而使会话保持活动状态。
因此,如果您终止了创建锁定的进程,则最终会释放锁定,因为会话将因zookeeper不再接收心跳而死亡。
因此,在释放锁之前杀死一名工人最终应该释放锁。
如果永远不会发布锁定,可能会发生一些事情,
这不是一个动物园管理员的错误。
你怎么知道锁没有被释放?
使用kill信号杀死进程无法清除ZooKeeper锁等“软件锁”。
唯一一种被KILL信号杀死的锁是OS级锁,因为所有文件描述符都被杀死,因此文件描述符锁被杀死。但就ZooKeeper而言,那些不是操作系统级锁定(只是因为ZooKeeper进程,即使在同一台机器上,也不是你的python进程之一)。
因此,它不是ZooKeeper中的错误,也不是kill -9的预期行为。