JBuss
Введение
JBuss — это бесплатная распределённая система управления и администрирования на основе springboot. В разработке использовались последние версии MySQL 8.0, Springboot 2.7.3 и Redis 5.0. Это готовое решение для бэкенда, которое можно использовать в качестве начальной архитектуры проекта или в учебных целях. JBuss постоянно следит за последними тенденциями в технологиях и обновляет информацию как можно быстрее.
Цель JBuss — предоставить интегрированное решение для бэкэнда, подходящее для вторичной разработки. Система уже содержит готовые динамические меню, пользователей, роли, словари и управление правами (на уровне кнопок), что позволяет разработчикам сосредоточиться на бизнес-логике, не заботясь о базовых функциях. Кроме того, JBuss предлагает улучшенное управление периодическими задачами, позволяя легко изменять или останавливать задачи без необходимости перезапуска системы. Достаточно выполнить действия на странице, чтобы настроить расписание задач, например, **/10 * * * * ?*. Также предоставляется централизованное управление распределёнными задачами.
Если вашему проекту требуется больше базовых функций, вы можете разрабатывать более сложные функции, такие как рабочие процессы, на основе JBuss.
Ветви old-dev и master безопасны для использования.
Характеристики
Системное администрирование
- Динамическое меню: настройка необходимых меню в панели навигации с обновлением страницы.
- Пользователи: конфигурирование пользователей с соответствующими ролями, включая роль по умолчанию с паролем 123456.
- Роли: наличие двух ролей для регистрации пользователей и управления их истечением срока действия.
- Кнопки: идеальное соответствие между меню и кнопками, а также детальное управление правами.
- Словари: предоставление данных словаря для бизнес-целей, при этом системные словари не включены.
- Права: структурированное управление правами на основе ролей, меню и кнопок.
- Все изменения сохраняются без необходимости повторного входа в систему.
Настройка системы
- Конфигурация системы: управление регистрацией различных модулей пользователей, определение ролей для новых регистраций, управление истечением сроков действия ролей и настройка времени истечения срока действия пользователей.
- Автоматизация ролей: управление зарегистрированными пользователями, изменение ролей пользователей и настройка сроков истечения действия ролей.
Периодические задачи
- Локальное планирование: возможность добавления и выполнения задач в бэкенд-сервисе с использованием параметров JSON, выражений cron и статуса. Нет необходимости останавливать и перезапускать сервис для управления периодическими задачами. Предоставляются документы с визуализацией параметров, журналы и уведомления по электронной почте.
- Распределённое планирование: интеграция с jbuss-rpc-server для централизованного управления распределёнными задачами планирования. Отличается от локального планирования возможностью развёртывания на разных узлах сервисов через службу rpc. Обеспечивается визуализация параметров, ведение журналов и отправка уведомлений по электронной почте.
- Исполняющие узлы: управление каждым узлом сервиса, предоставляя возможности автоматической регистрации, ручной регистрации и анализа задач на узле. Предлагается конфигурация управления задачами на узлах.
Мониторинг системы
- Онлайн-пользователи: просмотр активных пользователей в реальном времени с возможностью блокировки неактивных пользователей (кроме себя).
- Обзор ресурсов: мониторинг состояния памяти, процессора и других ресурсов на каждом сервере без необходимости индивидуального просмотра каждого сервера.
- Мониторинг сервисов: отслеживание информации о процессоре, памяти, жёстком диске, JVM, swap и системных данных на каждом сервере.
Управление вложениями
- Загрузка файлов: простая загрузка файлов, включая пакетную загрузку изображений и файлов. Планируется дальнейшее улучшение функциональности.
- Мои файлы: доступ к личным файлам для каждого пользователя.
- Все файлы: просмотр файлов всех пользователей для удобства администраторов.
Журналы событий
- Операционные записи: регистрация всех действий, выполненных каждым пользователем в системе, включая события, пути, методы запросов, время выполнения и время запроса.
- Записи входа: отдельное хранение информации о входе пользователей, включая устройства, операционные системы, IP-адреса и время входа.
Личные данные
- Основные данные: предоставление возможностей для изменения личных данных.
- Мой вход: просмотр истории входов для каждого пользователя в любое время.
- История действий: восстановление предыдущих операций в случае забытых действий.
- Изменение пароля: обновление пароля на основе исходного пароля.
Предварительная подготовка
- JDK 1.8
- MySQL 8.0+
- Redis 5.0+
Установка и использование
-
Получите код:
git clone https://gitee.com/insteresting/JBuss.git
-
Разместите интерфейс в каталоге tomcat для запуска:
cd JBuss
cp -r 前端/ROOT/* tomcat/ROOT/
# Обратите внимание на необходимость изменения файла js/custom/app.js для домена и cookieDomain
domain: префикс адреса бэкэнд-интерфейса
cookieDomain: домен cookie для интерфейса
-
Инициализируйте последний SQL-скрипт:
# Импортируйте последний файл SQL из tools, учитывая соответствующую базу данных, порт, пользователя и пароль
-
Запустите проект:
-
Внедрите jbuss-rpc-spring-boot-starter:
-
Настройте rpc в application.yml в SpringBoot:
fxw-rpc:
local-registry-port: текущий порт запуска узла
remote-registry-ip: IP центра регистрации
remote-registry-port: порт центра регистрации
-
Активируйте rpc:
Добавьте @EnableFxwRpc в класс SpringBoot.
-
Создайте задачи планирования:
- Добавьте @TaskComponent в класс.
- Используйте @Note(desc = "Информация о памяти|Cpu узла", params = "serverNode(String,true,192.168.0.12:9998,узел службы)") для аннотирования метода.
- desc: описание метода.
- params: параметры описания, строго следуя формату определения: параметр1(тип параметра, требуется ли заполнение, пример, описание параметра)|параметр2(тип параметра, требуется ли заполнение, пример, описание параметра).
- Обратитесь к примеру jbuss-rpc-server-app для создания задач планирования.
Недостатки
В настоящее время проект является личной коллекцией, интерфейс использует оригинальный JavaScript/jQuery, и в настоящее время ведётся работа над его преобразованием в Vue3.
Как внести свой вклад
Если у вас есть лучшие идеи, свяжитесь со мной, мой QQ: 970737468.
Pull Request:
- Форкните код.
- Создайте свою ветку:
git checkout -b feat/xxxx
.
- Зафиксируйте свои изменения:
git commit -am 'feat(function): add xxxxx'
.
- Отправьте свою ветку:
git push origin feat/xxxx
.
- Отправьте pull request.
Git-правила оформления коммитов
- feat: новые функции.
- fix: исправление ошибок.
- docs: документация.
- style: форматирование и стиль (не влияет на выполнение кода).
- refactor: рефакторинг (не добавление новой функциональности и не исправление ошибок).
- perf: оптимизация, например, повышение производительности или улучшение опыта.
- test: добавление тестов.
- build: изменения, связанные со сборкой или зависимостями.
- ci: непрерывная интеграция.
- chore: изменения в процессе сборки или вспомогательных инструментах.
- revert: возврат к предыдущей версии.
- workflow: улучшения рабочего процесса.
- mod: неопределённые изменения.
- wip: разработка в процессе.
- types: типы.
Поддержка браузеров
Рекомендуется использовать Chrome 80+ для локальной разработки. Поддерживаются современные браузеры, IE не поддерживается. Вклад участников
Опубликовать ( 0 )