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

OSCHINA-MIRROR/gdzWork-JPower

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 17:48 2cc9a10

JPower: платформа для быстрой разработки микросервисов

Gitter License Gitter

QQ группа:

tip: после добавления в группу по Star можно бесплатно получить код генератора


Свяжитесь с нами для разработки различных интерфейсных и мобильных приложений, а также для связи через WeChat: 953944877


JPower только начинает свой путь, многие функции всё ещё находятся в разработке...

JPower — краткое описание

JPower — это проект, который был создан на основе правительственного коммерческого проекта.

Используется модель разделения на фронтэнд и бэкэнд. Фронтенд — это открытые проекты: jpower-ui (на основе AVue, Vue, Element-UI), JPowerWeb(на основе Vue, Element-UI).

Версия Boot: JPowerBoot.

JPower основан на SpringCloud(2020.0.1) и SpringBoot(2.4.2) и представляет собой платформу для быстрой разработки микросервисных приложений. Он имеет шлюз для единой аутентификации, защиту от межсайтовых сценариев атак, распределённые транзакции и другие модули. Поддерживает параллельную разработку нескольких бизнес-систем и сервисов, может использоваться как бэкенд-сервис для разработки. Код лаконичен, комментарии полны, архитектура ясна и хорошо подходит для изучения и использования в качестве базовой структуры. Цель JPower состоит в том, чтобы создать интегрированный набор инструментов для разработки, таких как возможность настройки различных отчётов на страницах, интеграция Echarts для быстрого создания страниц и передача данных в различных сценариях. В настоящее время реализована только базовая архитектура, и в будущем планируется постепенное добавление различных инструментов в структуру.

Основные технологии включают Spring Cloud Alibaba, SpringBoot, Mybatis, Seata, Sentinel и SkyWalking. Ожидается, что будет создана комплексная система, включающая базовую структуру, микросервисную архитектуру, инструменты и мониторинг системы. Этот проект направлен на создание базовых возможностей, не связанных с конкретными бизнес-процессами.

Для аутентификации используется JWT, который можно расширить для интеграции с Redis и другими системами контроля доступа.

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

Sentinel обеспечивает защиту сервисов от перегрузок, сбоев и других проблем.

MybatisPlus-generator используется для генерации кода.

Ветви проекта

  1. master — последняя стабильная версия, каждый коммит увеличивает номер версии.
  2. dev — ветвь разработки автора, где автор публикует свой последний код. Можно переключиться на эту ветку, если вы хотите попробовать новые функции, но могут быть ошибки или проблемы, поэтому рекомендуется использовать её только опытным пользователям.
  3. tag — каждый фиксированный выпуск получает тег для удобства переключения на любую версию позже.

Техническая документация

Демонстрационный адрес проекта:

  • демонстрационный адрес: http://jpower.top:81
  • учётные данные для суперпользователя (арендатор: 000000):
  • суперадминистратор: root/123456
  • учётные данные пользователя арендатора (арендатор: LXD0DP):
  • обычный аккаунт: admin/123456

ps: демонстрационная среда не имеет прав на запись.

Бизнес-функции:

  1. Управление арендаторами: суперпользователь может создавать всех арендаторов.
  2. Управление организацией: управление отделами, данными пользователей, восстановление паролей и т. д.
  3. Настройка разрешений: разрешения на доступ к данным, управление ролями, привязка ролей к пользователям, предоставление ролей и ресурсов.
  4. Системная настройка: настройка меню, управление вложениями, словари, административные районы, системные параметры, управление приложениями и т. д.
  5. Управление шлюзом: ограничение трафика и блокировка доступа, регистрация центра.
  6. Мониторинг системы: документация по API, мониторинг сервисов, мониторинг SkyWalking, журналы ELK и т. д.

Основные функции проекта:

  1. Регистрация и обнаружение сервисов:

    На основе Nacos реализована регистрация и обнаружение служб, а OpenFeign используется для вызова служб удалённо, как если бы они были локальными методами. Разработчики не ощущают, что это HTTP-запросы, и даже не осознают, что они вызывают удалённые методы.

  2. Аутентификация сервисов:

    JWT используется для усиления проверки подлинности между службами, обеспечивая безопасность внутренних служб.

  3. Механизм отключения:

    Из-за распределённой природы сервисов Sentinel используется в качестве механизма отключения, предотвращая «лавину» вызовов между сервисами.

  4. Мониторинг:

    Spring Boot Admin используется для мониторинга состояния отдельных сервисов; SkyWalking используется для просмотра цепочек вызовов, стеков и другой информации между сервисами.

  5. Цепочка вызовов:

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

  6. Контроль доступа к данным:

    Основанный на Mybatis перехватчик используется для реализации контроля доступа к данным.

  7. Защита от межсайтового скриптинга (XSS):

    • Все запросы фильтруются с помощью фильтров для фильтрации параметров формы во всех запросах.
  8. Онлайн-API:

    Поскольку некоторые функции в исходном swagger-ui не являются дружественными, используется отечественный open-source knife4j, и также создан стартер для упрощения использования springboot.

  9. Распределённые транзакции:

    Seata от Alibaba используется для решения проблем с распределёнными транзакциями в микросервисной архитектуре. Она обеспечивает высокую эффективность и минимальные изменения в бизнес-логике.

  10. Автоматическое сопоставление данных между таблицами, базами данных и сервисами:

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

  11. Серая публикация:

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

  12. Мониторинг интерфейсов:

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

Структура проекта:

JPower
├── config -- конфигурационные файлы
├── jpower-core-login -- модуль авторизации и входа
├── jpower-core-server -- основной бизнес-модуль
├    ├── jpower-file -- файловый модуль
├    ├── jpower-user -- пользовательский модуль
├    └── jpower-system -- системный модуль
├── jpower-feign-api -- модуль Feign API
├    ├── jpower-file-api -- файловый API-модуль
├    ├── jpower-system-api -- системный API-модуль
├    └── jpower-user-api -- пользовательский API-модуль
├── jpower-module-common -- инструментальный модуль
├    ├── common-auth -- инструментарий авторизации
├    ├── common-dbs -- инструментарий баз данных
├    ├── common-deploy -- базовый инструментарий запуска
├    ├── common-exception -- инструментарий обработки исключений
├    ├── common-log -- инструментарий логирования
├    ├── common-nacos -- инструментарий Nacos
├    ├── common-redis -- инструментарий Redis
├    ├── common-feign -- инструментарий Feign с интеграцией Sentinel
├    ├── common-swagger -- инструментарий Swagger
├    ├── common-tool -- базовый инструментарий
├    ├── common-transaction -- инструментарий распределённых транзакций
├    └── common-utils -- общие утилиты
├── jpower-module-gateway -- шлюзовый модуль
├── jpower-op-server -- модуль управления операциями
├    ├── jpower-doc -- агрегация документов Swagger
├    ├── jpower-log -- сервис логирования
└──  └── jpower-admin -- Spring Boot Admin

Технологический стек:

  • В проекте используются следующие технологии:
    • Кэширование: Redis Базы данных: MySQL 5.7

Слой персистентности: Mybatis-plus

API-шлюз: Gateway

Сервис регистрации и обнаружения: Nacos

Потребление сервисов: OpenFeign

Балансировка нагрузки: Spring load balancing

Центр конфигурации: Nacos

Отказоустойчивость сервисов: Sentinel

Сборка проекта: Maven 3.3

Распределённые транзакции: Seata

Защита трафика распределённой системы: Sentinel

Мониторинг: spring-boot-admin

Отслеживание вызовов в цепочке и мониторинг APM: Skywalking

Nginx

Развёртывание

Сервер: CentOS

Docker: 18

Nginx

Скриншоты проекта:

Предварительный просмотр Предварительный просмотр
![Предварительный просмотр.png](docs/image/скриншоты проекта/1606371365570.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372161878.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/1606371469176.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/1606371969088.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372018753.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372215188.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372253016.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372274084.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372312058.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/1606372363368.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/20210307214844.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/20210307214944.png)
![Предварительный просмотр.png](docs/image/скриншоты проекта/20210307215009.png) ![Предварительный просмотр.png](docs/image/скриншоты проекта/20210307215029.png)

Если вы считаете, что этот проект хоть чем-то вам полезен, пожалуйста, поставьте «звезду» в правом верхнем углу, чтобы поддержать его, и расскажите о нём своим друзьям и коллегам. Спасибо!

Обнаружение ошибок: отправьте их на issues.

Участие и вклад:

  1. Fork этого репозитория.
  2. Создайте ветку feat_xxx.
  3. Отправьте код.
  4. Создайте Pull Request.

Благодарим JetBrains за предоставление бесплатной лицензии с открытым исходным кодом:

JetBrains

Ссылки и благодарности:

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/gdzWork-JPower.git
git@api.gitlife.ru:oschina-mirror/gdzWork-JPower.git
oschina-mirror
gdzWork-JPower
gdzWork-JPower
master