1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hezui-configMenagement

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Конфигурационный центр управления конфигурациями на основе Zookeeper

В больших кластерах и распределённых приложениях конфигурации не следует рассредотачивать по узлам кластера или использовать большое количество проектов, что приведёт к хаосу в управлении. В этом случае конфигурации должны быть сосредоточены в одном месте. Этот конфигурационный центр ориентирован на простое использование и полезность, являясь легковесной системой управления конфигурациями. При изменении конфигураций нет необходимости перезапускать сервисы; новые значения автоматически распространяются среди всех использующих сервисов. Конфигурационные данные хранятся в локальном кэше, благодаря чему скорость доступа очень высока, так как используется память. Обновление кэша происходит либо через регулярное обновление, либо через динамическое слушание изменений значений. Благодаря использованию кэширования программа продолжает работать даже если Zookeeper временно недоступен. Конечно же, Zookeeper известен своей надёжностью.

Узлы могут быть защищены с помощью системы безопасности. Узел, созданный одним пользователем, может быть доступен только авторизованным пользователям, имеющим права на его редактирование и изменение (хотя он может быть удалён любым пользователем).Проект состоит из API и веб-интерфейса управления, реализованного на Java с использованием Maven. Любые вопросы можно задать для уточнения.

Дизайн: Spring MVC, Freemarker, Bootstrap и ZkClient

Если вы хотите использовать только инструмент управления Zookeeper, он был разделён в отдельный проект. Подробнее см.:
http://git.oschina.net/hezui/ZookeeperManage

I. Веб-интерфейс управления конфигурациями (проект configWeb)

Веб-интерфейс управления конфигурациями Zookeeper, обеспечивающий быстрый доступ к данным благодаря кэшированию. Интерфейс позволяет оперировать узлами в виде дерева файлов, а также предоставляет возможности резервного копирования и восстановления данных, а также безопасного управления узлами.

Прежде чем запустить этот проект, необходимо скомпилировать configApi (в Eclipse потребуется импорт Lombok для избежания ошибок). После этого закройте текущий проект и запустите configWeb (в UTF-8 кодировке). Для использования системы безопасности узлов: установите значение zookeeper.safe_permis_open в config.properties на true. По умолчанию это значение равно false, что делает проект обычным веб-интерфейсом управления. При установке значения на true все созданные узлы будут требовать авторизации с использованием пароля пользователя.

Скриншот

СкриншотСкриншот

II. После компиляции проекта confiApi, его можно импортировать в проект для использования:

1. Импорт зависимостей Maven

<dependency>
    <groupId>com.zk.config.api</groupId>
    <artifactId>configApi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

2. Настройка Spring

<bean id="configProperties" class="com.zk.config"/>
<bean id="api.factory.CustomizedPropertyConfigurer">
    <property name="configClient">
      <list>
        <ref bean="configClient" /> <!-- Импортирует файл с расширением .properties из узла Zookeeper -->
      </list>
    </property>
  </bean>
  <bean id="configClient" class="com.zk.config.api.client.ConfigClient" scope="singleton" init-method="init">
    <constructor-arg index="0" value="192.168.3.6:2181,192.168.3.7:2181/configManagement/configWeb/dev" /> <!-- Хост Zookeeper + корневой каталог управления конфигурациями + имя проекта + ветка (например: dev, test, prod) -->
    <constructor-arg index="1" value="30000" /> <!-- Параметр времени ожидания соединения connectTimeout для инициализации Zookeeper, единицы измерения — миллисекунды -->
    <constructor-arg index="2" value="0" /> <!-- Интервал времени для периодического обновления кэша данных, единицы измерения — миллисекунды, 0 — отключено -->
    <constructor-arg index="3" value="true" /> <!-- Включение динамического мониторинга узлов -->
    <constructor-arg index="4" ref="configProperties" /> <!-- Поддерживает динамическое получение значений Properties -->
    <constructor-arg index="5" value="guest:guest123" /> <!-- После активации управления безопасностью узлов в интерфейсе управления, API требует пользователя:пароль для доступа к данным -->
  </bean>
```### 3. Теперь можно использовать конфигурационные данные из Zookeeper так же просто, как обычные свойства Spring.

Например, бины в конфигурационном файле Spring могут использовать стандартный способ внедрения значений, такие как `${user}`, чтобы получить значения из Zookeeper, как показано ниже:

```markdown
<bean id="test" class="com.zk.config.api.test.Test" init-method="init" scope="prototype">
  <property name="user" value="${user}" />
  <property name="userName" value="${userName}" />
</bean>

Аналогично, это можно сделать и в Java-классах.

Примечание:

  1. Обычно внедренные значения представляют собой одноразово закэшированные значения при создании объекта. Чтобы использовать динамически изменяемые значения, используйте объект Properties (такой как здесь определенный configProperties), или получите значение напрямую через статический объект кэша (ConfigClient.getPropertiesValue(key)). Объект кэша ConfigClient является самым ранним инициализируемым статическим объектом, поэтому остальные статические объекты могут получить доступ к соответствующим кэш-данным. При наличии нескольких клиентов ConfigClient, последний клиент будет иметь приоритет для ключей или путей узлов.2. Узлы Zookeeper с конечной частью названия .properties автоматически распознаются как файлы Properties. Если используется XML-формат файла Properties, его можно добавить к концу имени узла.
3. Конфигурационные файлы логгирования на Zookeeper с суффиксом log4j.properties будут автоматически загружаться по умолчанию. Для других файлов конфигурации логгирования, таких как log4j.xml, установите значение свойства log4jPathName объекта configClient равным имени файла. Чтобы отключить автоматическую загрузку, установите пустую строку, например:
``` 4. Узлы или директории, начинающиеся с двоеточия (:), автоматически мапятся в локальный classpath, что позволяет использовать их при запуске проекта. 5. Поддерживается получение данных конфигурации через HTTP-запросы, открытый API имеет следующий адрес: http://localhost:8080/configWeb/getConfigData### Проблемы и предложения Электронная почта: hezui@163.com QQ: 379049886

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Веб-инструмент для управления в режиме онлайн для Zookeeper, основанный на конфигурационном центре Zookeeper, реализует централизованное управление статической конфигурацией центров обработки данных, а также управление конфигурациями кластеров и распределённых приложений. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hezui-configMenagement.git
git@api.gitlife.ru:oschina-mirror/hezui-configMenagement.git
oschina-mirror
hezui-configMenagement
hezui-configMenagement
master