tags: conflab
Текущая версия v1.0.3, подробнее см. RELEASE.md.
Conflab — это кластерный центр конфигурации, который реализует централизованное управление конфигурациями бизнес-систем. Конфигурации хранятся в zookeeper
, а при обновлении отправляются соответствующие уведомления клиентам. Клиенту необходимо установить адрес ZK, мы можем сделать это, записав его в переменную среды.
Серверная часть conflab-sever управляет конфигурациями и отправляет обновления в zookeeper; клиентская часть conflab-client отслеживает изменения в zookeeper
и обновляет конфигурации, бизнес-система получает последние конфигурации из кэша клиента; демонстрационный модуль conflab-demo является примером использования клиента в бизнес-системе.
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
.Конфигурации добавляются через интерфейс и отправляются.
Тестовый URL: /t/save
Данные сервера хранятся в базе данных и отправляются в zookeeper. Клиент получает уведомления от zookeeper и обновляет локальный кэш.
![Система структуры][3]
В каталоге 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 для каждого приложения, и связанные клиенты получают уведомления об обновлениях.
Клиент представляет собой 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 )