Совет: после присоединения к группе вы можете получить бесплатный генератор кода со скриншотом Star.
JPower
— это обновлённая и оптимизированная версия правительственного коммерческого проекта.
Используя модель разделения фронтенда и бэкенда, фронтенд-проекты с открытым исходным кодом: jpower-ui
(на основе AVue, Vue, Element-UI), JPowerWeb
(на основе Vue, Element-UI).
Версия загрузки: JPowerBoot
.
JPower
, основанный на SpringCloud(2020.0.1)
+ SpringBoot(2.4.2)
, представляет собой платформу для быстрой разработки микросервисов. Он имеет несколько модулей, таких как унифицированная аутентификация шлюза, защита от XSS-атак и распределённые транзакции, а также поддерживает параллельную разработку мультисервисных систем.
Поддерживает параллельную разработку нескольких сервисов и может использоваться в качестве каркаса для разработки бэкенд-сервисов. Код лаконичен, комментарии полны, структура ясна. Очень подходит для изучения и использования в качестве базовой структуры.
JPower
планирует создать платформу разработки, которая будет включать в себя различные полезные инструменты, такие как настройка различных отчётов на странице, интеграция echarts для быстрого создания страниц, передача данных в различных сценариях и т. д.
В настоящее время разработана только базовая архитектура, и в будущем различные инструменты будут постепенно интегрированы в структуру.
Основные технологии включают Spring Cloud Alibaba, Spring Boot, Mybatis, Seata, Sentinel и SkyWalking.
Я надеюсь приложить все усилия для создания набора решений, которые объединяют базовую структуру
—>распределённую архитектуру микросервиса
—> интеграцию инструментов
—> мониторинг системы
. Этот проект направлен на достижение основных возможностей и не включает конкретные бизнес-процессы.
Использование JWT для аутентификации токенов позволяет расширить и интегрировать Redis и другие схемы точного контроля.
Центр регистрации и центр конфигурации выбирают Nacos для усиления связи между модулями при одновременном снижении веса проекта.
Интеграция Sentinel защищает стабильность сервисов с разных сторон, таких как управление потоком и деградирование предохранителей.
Генератор кода реализован на основе MybatisPlus-generator.
Примечание: в демонстрационной среде нет прав на запись.
Управление шлюзом: ограничение тока и блокировка доступа, регистрационный центр.
Мониторинг системы: документация интерфейса, мониторинг сервисов, мониторинг SkyWalking и т.д.
Регистрация и обнаружение сервисов и их вызов:
Регистрация и обнаружение сервисов на основе Nacos, использование OpenFeign для реализации взаимодействия между сервисами, что позволяет достичь того же опыта кодирования, как при вызове локального метода, когда используются HTTP-запросы для удалённых вызовов. Разработчики полностью не осознают, что это удалённый метод, не говоря уже об HTTP-запросе.
Аутентификация сервиса:
Использование JWT для усиления проверки авторизации при планировании между сервисами для обеспечения безопасности внутренних сервисов.
Механизм предохранителей:
Из-за распределения сервисов используется Sentinel в качестве предохранителя, чтобы избежать «лавины» вызовов между сервисами.
Мониторинг:
Используется Spring Boot Admin для мониторинга состояния работы каждого независимого сервиса; используется SkyWalking для просмотра цепочки вызовов между каждым сервисом и т. д.
Мониторинг связанных вызовов:
Одновременно реализуется SkyWalking как полный мониторинг производительности этого проекта, отображаются различные показатели от общего измерения до частичного измерения, а информация о производительности всех цепочек вызовов между приложениями отображается централизованно, что может облегчить измерение общей и частичной производительности, а также помочь определить источник сбоя, что значительно сокращает время устранения неполадок в производстве.
Разрешение данных:
Функция разрешения данных реализована с использованием перехватчика на основе Mybatis.
Защита от межсайтовых сценариев (XSS):
Онлайн API:
Поскольку некоторые функции нативного swagger-ui недостаточно удобны, используется отечественный open source knife4j
, и был создан статусер, который удобен для пользователей springboot.
Распределённая транзакция:
Интеграция распределённого транзакционного промежуточного программного обеспечения Ali: seata, с Эффективным И для бизнеса 0 вторжений Способом, решение проблем распределённых транзакций в сценарии микросервисов.
Автоматический запрос словарных данных по таблицам, базам данных и сервисам:
Используется для решения проблем постраничных данных или свойств одного объекта, связанных с кросс-таблицами, кросс-базами данных, кросс-сервисами, эхо боли словарных данных, поддержка статических атрибутов данных (Data Dictionary) автоматическое внедрение.
Серое развёртывание:
Для решения частых обновлений и запусков сервисов, откатов версий, быстрой итерации и совместной разработки внутри компании в этом проекте используется модифицированная стратегия балансировки нагрузки spring-load-balancing для достижения серого развёртывания.
Мониторинг интерфейсов:
Специально разработан для обеспечения постоянной доступности интерфейсов, также может быть реализован мониторинг интерфейсов любых других сервисов, могут быть реализованы некоторые пользовательские настройки параметров.
JPower
├── config -- Каталог файлов конфигурации
├── jpower-core-login -- Авторизованный модуль входа
├── jpower-core-server -- Основной бизнес-модуль
├ ├── jpower-file -- Файловый модуль
├ ├── jpower-user -- Пользовательский модуль
├ └── jpower-system -- Системный модуль
├── jpower-feign-api -- feign api
├ ├── jpower-file-api -- File Api
├ ├── jpower-system-api -- System Api
├ └── jpower-user-api -- User Api
├── jpower-module-common -- Модуль инструментария
├ ├── common-auth -- Инструментарий авторизации
├ ├── common-dbs -- Инструментарий базы данных
├ ├── common-deploy -- Базовый набор для запуска
├ ├── common-exception -- Инструментарий аномалий
├ ├── common-log -- Инструментарий журналов
├ └── common-nacos -- Инструментарий Nacos ### **Общий инструментарий Redis — набор инструментов кэширования**
* Общий инструментарий Feign — набор инструментов Feign также интегрирует Sentinel.
* Общий набор инструментов Swagger — набор инструментов Swagger.
* Базовый набор инструментов Common-Tool — базовая конфигурация.
* Распределённый набор инструментов транзакций Common-Transaction.
* Common-Utils — инструменты.
### **Модуль шлюза Jpower-Module-Gateway**
### **Операционный и обслуживающий модуль Jpower-Op-Server**
Включает в себя:
* Jpower-Doc — страница Swagger.
* Jpower-Log — служба журналов.
* Jpower-Admin — SpringBootAdmin.
#### **Технологический стек:**
Используемые технологии включают:
1. Кэширование: Redis.
2. База данных: MySQL 5.7.
3. Фреймворк постоянства: Mybatis-plus.
4. API Gateway.
5. Регистрация и обнаружение сервисов: Nacos.
6. Потребление сервисов: OpenFeign.
7. Балансировка нагрузки: весенняя балансировка нагрузки.
8. Центр конфигурации: Nacos.
9. Объединение сервисов: Sentinel.
10. Построение проекта: Maven 3.3.
11. Распределённые транзакции: seata.
12. Защита трафика распределённой системы: Sentinel.
13. Мониторинг: spring-boot-admin.
14. Отслеживание вызовов и мониторинг APM: skywalking.
15. Nginx.
**Аспект развёртывания:**
Сервер: CentOS.
Docker 18.
Nginx.
#### **Скриншоты проекта:**
| Preview | Preview |
|---|---|
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
# Если вы считаете, что этот проект может быть вам полезен, пожалуйста, нажмите «Star» в правом верхнем углу, чтобы поддержать его и порекомендовать своим друзьям и коллегам, спасибо!
# Пожалуйста, отправьте сообщение, если вы обнаружите ошибку [issues](https://gitee.com/gdzWork/JPower/issues).
# Участвуйте в разработке:
1. Fork This warehouse.
2. Новая ветка feat_xxx.
3. Отправьте код.
4. Новый запрос на вытягивание.
# Спасибо за бесплатную лицензию с открытым исходным кодом от JetBrains:
[](https://www.jetbrains.com/?from=lamp-cloud)
# Дружеская ссылка и особая благодарность:
* Платформа для быстрой разработки микросервисов: [https://gitee.com/gdzWork/JPower](https://gitee.com/gdzWork/JPower).
* JPowerWeb [https://gitee.com/deep_letters/jpower](https://gitee.com/deep_letters/jpower).
* jpower-ui: [https://gitee.com/gdzWork/jpower-ui](https://gitee.com/gdzWork/jpower-ui).
* Avue: [https://gitee.com/smallweigit/avue](https://www.avuejs.com/).
* JWchat: [https://gitee.com/CodeGI/chat](https://gitee.com/CodeGI/chat).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )