Вышла новая версия Apache Curator, клиентской библиотеки Java / JVM для Apache ZooKeeper. Zookeeper — это распределенная служба координации. В новом выпуске Curator добавлена поддержка узлов TTL и строго типизированного DSL.
Curator включает высокоуровневую платформу API и утилиты, которые делают использование Apache ZooKeeper более простым и надежным. Он также включает рецепты для распространенных вариантов использования и расширений, таких как обнаружение сервисов и асинхронный DSL Java 8.
ZooKeeper был разработан Apache для разработки и обслуживания сервера с открытым исходным кодом, который обеспечивает высоконадежную распределенную координацию. Это централизованная служба для хранения информации о конфигурации, присвоения имен, обеспечения распределенной синхронизации и предоставления групповых услуг. Все эти виды услуг в той или иной форме используются распределенными приложениями. ZooKeeper имеет интерфейсы Java и C для самих приложений. Доступны различные клиентские привязки для ряда языков, включая Python, Ruby и Go.
Curator — это набор библиотек Java, которые значительно упрощают использование Apache ZooKeeper. Хотя ZooKeeper действительно поставляется в комплекте с клиентом Java, его использование довольно сложно и может быть подвержено ошибкам.
Куратор состоит из трех компонентов, которые дополняют друг друга. Клиент Curator — это замена входящего в комплект класса ZooKeeper, который берет на себя некоторую низкоуровневую работу и предоставляет некоторые полезные утилиты. Curator Framework — это высокоуровневый API, который значительно упрощает использование ZooKeeper. Он добавляет множество функций, основанных на ZooKeeper, и справляется со сложностью управления подключениями к кластеру ZooKeeper и повторных операций. Рецепты куратора состоят из реализаций некоторых распространенных «рецептов» ZooKeeper. Кроме того, включен Curator Test, который включает утилиты для модульного тестирования приложений на основе ZooKeeper.
Основные преимущества Curator — упрощенный API; автоматическое управление подключением ZooKeeper с повторными попытками; и улучшенная обработка рецептов ZooKeeper, включая набор полных, хорошо протестированных рецептов ZooKeeper, а также фреймворк, который упрощает написание новых рецептов ZooKeeper.
Обновления Curator начинаются с поддержки узлов TTL. Узлы ZooKeeper TTL (Time-to-live) позволяют создавать и использовать узлы, которые не привязаны к сеансу, но срок действия которых истекает автоматически, если какой-либо клиент не предпринимает никаких действий в течение определенного временного окна. Недавно они были представлены в ZooKeeper и теперь поддерживаются Куратором.
Следующее улучшение — это новый строго типизированный, смоделированный DSL (Domain Specific Language). До сих пор все CRUD-методы Curator работали с необработанными байтовыми массивами. Дополнение позволяет использовать строго типизированные модели.
Добавление DSL привело к другому главному усовершенствованию — структуре миграции данных, позволяющей разработчикам импортировать или переносить модели данных.