Digests d4n13l

Zookeeper Data 3

Чек-лист заданий

Полный список дайджестов

Задача - научиться ипользовать Apache Zookeeper для хранения настроек приложения

Сегодня я не написал ни строчки кода, так как посчитал, что для каждого хранение настроек и их обновление является довольно специфичными, также в принципе они достаточно тяжеловесны в рамках этой задачи. Поэтому я просто предложу модель хранения и обновления данных. Дальше все в памятке.

Какие задачи решены?

  • Рассмотрел возможные варианты
    • хранения настроек
    • обноавления
    • получения обновлений

Что планирую сделать дальше?

  • Реализовать приоритезацию трафика в kafka

Краткая памятка по найденному материалу

  1. Организация хранения и обновления данных.

    • Вопрос хранения ограничивается лишь определение структуры, которая позволит удобно содержать настройки сервисов и в случае чего их получить или обновить. И так (предложенный вариант взят из блога):
      1. Каждый сервис хранит настройки в znode с путем /system/<profile>/<service>, где profile - имя профиля, например, test, dev, а service - название сервиса.
      2. По пути /system/<profile> хранятся глобальные настройки для всех сервисов по конкретному профилю.
      3. По пути /system/<profile>/<service> хранятся специфичные для сервиса настройки.
    • Для обновления настроек существует два способа:
      1. Предоставить простой API
      2. Делать загрузку обновлений через файл, что потребует дополнительно формировать файл при попытке обновления
  2. Дальнейшие наработки.

    • Так как Kafka не поддерживает приоритезацию, то возможными способами ее реализации будет создание приоритетных топиков. Например, priority_0, priority_2, priority_3, … Для определения важности информации вместе с сообщений можно хранить идентификатор топика, по которому можно понять приоритет хранения. ИД топика можно положить в базу данных или в zookeeper.