Добавить часы при создании блокировки с помощью Curator Lock API

У нас есть конкретный случай, когда один процесс получит блокировку куратора на ключе и прикрепит часы. Другой процесс также прикрепляет Watch к тому же ключу. Я хочу, чтобы другой процесс был уведомлен всякий раз, когда блокировка снята: либо самим процессом, либо ZooKeeper, когда процесс мертв.

Я пытаюсь с NodeCache, но я предполагаю, что NodeCache не работает, когда тип znode EPHEMERAL_SEQUENTIAL. По крайней мере, мой тестовый случай не проходит.

1 ответ

Мне удалось решить проблему с помощью PathChildrenCache вместо NodeCache. API блокировки куратора создает режим EPHEMERAL_SEQUENCE на zk. Поэтому было трудно предоставить точный путь к NodeCache, на который можно было бы смотреть. Реализация PathChiredrenCache будет вызвана, когда любой из процессов использует блокировку для того же ключа, поскольку они будут создавать дочерние узлы внутри этого ключа на zookeeper.

Другие вопросы по тегам