Zookeeper Data 3
Чек-лист заданий
Полный список дайджестов
Задача - научиться ипользовать Apache Zookeeper для хранения настроек приложения
Сегодня я не написал ни строчки кода, так как посчитал, что для каждого хранение настроек и их обновление является довольно специфичными, также в принципе они достаточно тяжеловесны в рамках этой задачи. Поэтому я просто предложу модель хранения и обновления данных. Дальше все в памятке.
Какие задачи решены?
- Рассмотрел возможные варианты
- хранения настроек
- обноавления
- получения обновлений
Что планирую сделать дальше?
- Реализовать приоритезацию трафика в kafka
Краткая памятка по найденному материалу
-
Организация хранения и обновления данных.
- Вопрос хранения ограничивается лишь определение структуры, которая позволит удобно содержать настройки сервисов и в случае чего их получить или обновить.
И так (предложенный вариант взят из блога):
- Каждый сервис хранит настройки в znode с путем /system/<profile>/<service>, где profile - имя профиля, например, test, dev, а service - название сервиса.
- По пути /system/<profile> хранятся глобальные настройки для всех сервисов по конкретному профилю.
- По пути /system/<profile>/<service> хранятся специфичные для сервиса настройки.
- Для обновления настроек существует два способа:
- Предоставить простой API
- Делать загрузку обновлений через файл, что потребует дополнительно формировать файл при попытке обновления
- Вопрос хранения ограничивается лишь определение структуры, которая позволит удобно содержать настройки сервисов и в случае чего их получить или обновить.
И так (предложенный вариант взят из блога):
-
Дальнейшие наработки.
- Так как Kafka не поддерживает приоритезацию, то возможными способами ее реализации будет создание приоритетных топиков. Например, priority_0, priority_2, priority_3, … Для определения важности информации вместе с сообщений можно хранить идентификатор топика, по которому можно понять приоритет хранения. ИД топика можно положить в базу данных или в zookeeper.