Распределенный счетный семафор в Java - PullRequest
2 голосов
/ 09 января 2020

Я ищу реализацию распределенного семафора (с postgres / zookeeper в качестве хранилища), которая похожа на концепцию java.util.concurrent.Semaphore, которая будет поддерживать набор разрешений, которые будут получены с использованием acquire() и выпущены release() позволяет мне ограничить доступ к некоторому ресурсу или синхронизировать выполнение. Единственное отличие состоит в том, что этот семафор должен позволять мне выполнять все эти действия в нескольких jvms.

Может кто-нибудь указать мне, есть ли такая реализация в java или какой-либо эталонный алгоритм для реализации того же самого?

1 Ответ

3 голосов
/ 09 января 2020

Для zookeeper вы можете использовать библиотеку apache Куратор , которая обеспечивает абстракцию общего семафора.

В postgres вы можете рассмотреть возможность использования Advisory Locks для этого и реализовать аппликативную библиотеку к тому же.

...