Я пишу распределенное приложение, используя Hazelcast (стандарт JCache) для кэширования.
У меня есть вариант использования, когда я должен заблокировать определенный ключ в кластере, чтобы предотвратить вызовы во время обновления.
- thread1: получить item1 для изменения конфигурации (поставить блокировку)
- thread2: получить item1 для обновления.
- thread2: поместите item1 с обновлением и новой меткой времени.
- thread1: поместите item1 со старым значением и отметкой времени
Я знаю, что в EhCache есть что-то очень похожее, оно называется «acquireReadLockOnKey» (ключ объекта).
Как я могу добиться такой блокировки с помощью JCache и/или Hazelcast?