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

OSCHINA-MIRROR/chengjk-conflab

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

Conflab

tags: conflab


Текущая версия v1.0.3, подробнее см. RELEASE.md.

Conflab — это кластерный центр конфигурации, который реализует централизованное управление конфигурациями бизнес-систем. Конфигурации хранятся в zookeeper, а при обновлении отправляются соответствующие уведомления клиентам. Клиенту необходимо установить адрес ZK, мы можем сделать это, записав его в переменную среды.

Серверная часть conflab-sever управляет конфигурациями и отправляет обновления в zookeeper; клиентская часть conflab-client отслеживает изменения в zookeeper и обновляет конфигурации, бизнес-система получает последние конфигурации из кэша клиента; демонстрационный модуль conflab-demo является примером использования клиента в бизнес-системе.

Начало работы

  • Настроить переменную окружения zookeeper:
ZK_ADDRESS=127.0.0.1:2181  
  • Скомпилировать проект:
mvn clean package -DskipTests=true  

После компиляции серверной части получается zip-файл, который можно распаковать и запустить с помощью команды ./bin/start.sh. Структура каталога:

.  
├── application.properties  
├── bin  
│   ├── start.cmd  
│   └── start.sh  
├── conflab-server-1.0-SNAPSHOT.jar  
├── conflab-server-1.0-SNAPSHOT-sources.jar  
├── lib  
└── static  
    ├── css  
    ├── index.html  
    ├── js  
    ├── lib  
    ├── package.json  
    └── temp  
  • Запустить серверную часть: bin/start.sh или bin/start.cmd.
  • Посетить главную страницу серверной части: http://localhost:8080/index.html.
  • Добавить, изменить, удалить и проверить данные, отправить их.

Конфигурации добавляются через интерфейс и отправляются.

Тестовый URL: /t/save

Структура

Данные сервера хранятся в базе данных и отправляются в zookeeper. Клиент получает уведомления от zookeeper и обновляет локальный кэш.

![Система структуры][3]

Серверная часть conflab-server

Запуск

В каталоге bin есть файл start.sh для запуска на Linux и файл start.cmd для Windows. После запуска можно перейти на главную страницу управления по адресу [http://localhost:8080/index.html][4].

Главная страница также поддерживает добавление параметров запроса key?key=my, что эквивалентно поиску ключевого слова «my» в поле поиска главной страницы.

Эти соединения можно добавить в закладки браузера, чтобы быстро получать доступ к нужным настройкам без необходимости просматривать ненужный контент. Например, каждый член команды может использовать своё имя в качестве ключевого слова.

Конфигурация

Поскольку все данные конфигурации находятся в zookeeper, необходимо настроить переменную окружения для адреса zookeeper на сервере. Каждый клиент также должен настроить ту же переменную.

Общие настройки приложения находятся в файле application.properties в корневом каталоге. Здесь можно изменить порт, тип базы данных и информацию о подключении к базе данных.

Обратите внимание: по умолчанию используется база данных SQLite. При использовании spring.jpa.hibernate.ddl-auto=update при запуске будет выдана ошибка, поэтому по умолчанию настроено значение create, то есть новая таблица создаётся при каждом запуске. Рекомендуется закомментировать эту настройку после создания таблицы. Эта проблема будет исправлена в следующих версиях.

Введение в проект

Сервер отвечает за обновление и обслуживание zookeeper. Им можно легко управлять через браузер, не взаимодействуя напрямую с клиентской частью. (То есть, пока структура данных верна, любой инструмент управления zookeeper может заменить серверную часть, например, zooInspector.)

Проект имеет разделение на фронтэнд и бэкэнд. Фронтенд представляет собой типичную статическую HTML+JS страницу, поскольку это небольшой инструмент, чем проще, тем лучше. Бэкенд использует spring boot, spring mvc, spring data jpa и maven для упаковки. База данных может использовать все типы, поддерживаемые SpringDataJpa, включая MySQL и SQLite. По умолчанию используется SQLite, и никаких дополнительных настроек не требуется. Простота.

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

Клиентская часть conflab-client

Клиент представляет собой jar-файл, который нужно добавить в зависимости проекта. Версия 1.0.3 включает клиент golang, conflab-client-go[5], который можно использовать сразу после добавления.

Настроив адрес ZK, бизнес-система может легко получить нужные конфигурации:

String value=Conflab.getString("key");  

Клиенты отслеживают обновления zookeeper и по умолчанию обновляют локальные кэши конфигураций. Другие бизнес-функции могут быть реализованы в функции обратного вызова.

У клиентов есть два режима мониторинга для приложений (соответствующих каталогам в zookeeper): режим разработки и режим производства.

  • В режиме производства мониторинг объектов фиксирован и может быть реализован с использованием констант, таких как server.

  • В среде разработки каждый пользователь нуждается в собственных настройках, которые нельзя добавлять в систему контроля версий. Необходимо настроить один или несколько соответствующих элементов в каталоге CONFLAB_HOME или в пользовательском каталоге conflab.properties, например:

    server=jacky-server  
    demo=jacky-demo  

    Таким образом, в среде разработки сервер будет использовать конфигурацию jacky-server, а demo — аналогично.

Поддерживаются общие конфигурации. Когда общая конфигурация изменяется, все дочерние системы получают уведомление об обновлении.

Клиент — это просто jar-пакет, который добавляется в бизнес-систему. Пример использования можно найти в conflab-demo. Клиент также очень лёгкий и зависит только от logback и zk-клиента. Простота.

[3]: Не удалось определить местоположение изображения.
[4]: http://localhost:8080/index.html
[5]: https://github.com/chengjk/conflab-client-go

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

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

Введение

Conflab — это кластерный центр конфигурации, который обеспечивает унифицированное управление конфигурациями элементов бизнес-системы. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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