Добавить часы при создании блокировки с помощью Curator Lock API
У нас есть конкретный случай, когда один процесс получит блокировку куратора на ключе и прикрепит часы. Другой процесс также прикрепляет Watch к тому же ключу. Я хочу, чтобы другой процесс был уведомлен всякий раз, когда блокировка снята: либо самим процессом, либо ZooKeeper, когда процесс мертв.
Я пытаюсь с NodeCache, но я предполагаю, что NodeCache не работает, когда тип znode EPHEMERAL_SEQUENTIAL. По крайней мере, мой тестовый случай не проходит.
1 ответ
Мне удалось решить проблему с помощью PathChildrenCache вместо NodeCache. API блокировки куратора создает режим EPHEMERAL_SEQUENCE на zk. Поэтому было трудно предоставить точный путь к NodeCache, на который можно было бы смотреть. Реализация PathChiredrenCache будет вызвана, когда любой из процессов использует блокировку для того же ключа, поскольку они будут создавать дочерние узлы внутри этого ключа на zookeeper.