Как спроектировать систему управления транзакциями для пользовательского хранилища значений ключей

Мое приложение использует пользовательское хранилище значений ключей в качестве слоя постоянства данных. Это хранилище значений ключей разработано собственными силами и имеет несколько API-интерфейсов для работы, однако оно не обеспечивает ничего, связанного с управлением транзакциями или блокировкой (особенно распределенной блокировкой).

Теперь нам, как пользователю этого хранилища значений ключей, необходимо разработать такую ​​систему управления блокировками / транзакциями. Может ли кто-нибудь помочь показать, как можно реализовать такую ​​распределенную блокировку? Стоит ли смотреть на Apache Zookeeper?

Мы используем Java 7.

Спасибо нн

1 ответ

Есть множество вариантов, многие из них даже скажут вам, как это сделать:

  • Zookeeper, о котором вы упомянули, они даже говорят, как это сделать в своей кулинарной книге. Вы можете проверить документацию Zookeeper, в которой немного говорится о реализации распределенных блокировок.
  • Hazelcast, который представляет собой распределенную сетку данных в памяти, имеет реализацию распределенной блокировки
  • У Redis тоже есть!

Все, что распределяется и хранится в памяти, может быть хорошим кандидатом (и это действительно работает), является хорошим кандидатом. Лично на работе мы используем ZK (точнее, куратор, чтобы сделать его еще проще), и он работает хорошо. Некоторые из библиотек, которые мы используем, делают это с Hazelcast, и это не выглядит немного хуже

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