Apache ZooKeeper без клиента
У меня есть следующий случай использования, где я хотел бы знать, можно ли использовать apache zookeeper.
Мне нужно простое приложение пакетной обработки, распределенное по нескольким серверам, поэтому каждый процесс читает подмножество данных из базы данных, обрабатывает их и, наконец, объединяет данные в другую базу данных. Процессы не являются полностью независимыми, им нужно синхронизировать и устанавливать барьеры и т. Д.
В этом случае не участвует клиент. Серверы должны координировать свои действия и завершать процесс.
Я просмотрел документацию, и большинство из них подразумевает, что у хранителя зоопарка есть два актера: "Внешние клиенты" и "Кластер".
1 ответ
Исходя из моего понимания вашего вопроса и варианта использования.
Да, Apache Zookeeper может использоваться в вашем сценарии, поскольку он является высокопроизводительным сервером координации для распределенных приложений. Вы можете настроить клиент-серверную архитектуру zookeeper. Таким образом, ваши приложения, которые распределены по нескольким серверам, могут синхронизироваться с сервером Zookeeper для выполнения требуемой задачи.
Тем не менее, я не совсем уверен, что вы подразумеваете под "процессами не полностью независимыми". Если обработка должна выполняться последовательно, часы могут быть установлены. Таким образом, когда часы срабатывают, Zookeeper может уведомить других клиентов, а вы можете продолжить обработку и т. Д. Основы Zookeeper