JPower: платформа для быстрой разработки микросервисов
tip: после добавления в группу по Star можно бесплатно получить код генератора
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 используется для генерации кода.
ps: демонстрационная среда не имеет прав на запись.
Регистрация и обнаружение сервисов:
На основе Nacos реализована регистрация и обнаружение служб, а OpenFeign используется для вызова служб удалённо, как если бы они были локальными методами. Разработчики не ощущают, что это HTTP-запросы, и даже не осознают, что они вызывают удалённые методы.
Аутентификация сервисов:
JWT используется для усиления проверки подлинности между службами, обеспечивая безопасность внутренних служб.
Механизм отключения:
Из-за распределённой природы сервисов Sentinel используется в качестве механизма отключения, предотвращая «лавину» вызовов между сервисами.
Мониторинг:
Spring Boot Admin используется для мониторинга состояния отдельных сервисов; SkyWalking используется для просмотра цепочек вызовов, стеков и другой информации между сервисами.
Цепочка вызовов:
SkyWalking также используется в этом проекте для полного мониторинга производительности, от общего обзора до детального анализа, предоставляя информацию о производительности всех вызовов и облегчая измерение общей и локальной производительности. Это также помогает быстро определить источник проблем и сократить время устранения неполадок в производстве.
Контроль доступа к данным:
Основанный на Mybatis перехватчик используется для реализации контроля доступа к данным.
Защита от межсайтового скриптинга (XSS):
Онлайн-API:
Поскольку некоторые функции в исходном swagger-ui не являются дружественными, используется отечественный open-source knife4j
, и также создан стартер для упрощения использования springboot.
Распределённые транзакции:
Seata от Alibaba используется для решения проблем с распределёнными транзакциями в микросервисной архитектуре. Она обеспечивает высокую эффективность и минимальные изменения в бизнес-логике.
Автоматическое сопоставление данных между таблицами, базами данных и сервисами:
Используется для решения проблемы отображения данных между страницами, библиотеками и сервисами в режиме реального времени. Поддержка автоматического внедрения статических данных (словарей).
Серая публикация:
Чтобы решить проблему частых обновлений сервисов, версий и быстрых итераций, этот проект использует модифицированную стратегию балансировки нагрузки Spring для достижения серой публикации.
Мониторинг интерфейсов:
Для обеспечения бесперебойной работы интерфейсов разработан инструмент мониторинга интерфейсов, который также может отслеживать интерфейсы других сервисов. Настраиваемые параметры и другие функции также доступны.
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
Слой персистентности: 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
Предварительный просмотр | Предварительный просмотр |
---|---|
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )