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

OSCHINA-MIRROR/gdzWork-JPower

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.en.md

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

Gitter License Gitter

Номер QQ: 860452768

Совет: после присоединения к группе вы можете получить бесплатный генератор кода со скриншотом Star.


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

Резюме JPower

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.

Введение в ветки

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

Технические документы

Адрес демонстрации проекта

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

Примечание: в демонстрационной среде нет прав на запись.

Описание бизнес-функций:

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

Управление шлюзом: ограничение тока и блокировка доступа, регистрационный центр.

Мониторинг системы: документация интерфейса, мониторинг сервисов, мониторинг SkyWalking и т.д.

Введение в особенности проекта:

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

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

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

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

  3. Механизм предохранителей:

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

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

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

  5. Мониторинг связанных вызовов:

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

  6. Разрешение данных:

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

  7. Защита от межсайтовых сценариев (XSS):

    • Фильтр для всех запросов Form parameter Filter.
  8. Онлайн API:

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

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

    Интеграция распределённого транзакционного промежуточного программного обеспечения Ali: seata, с Эффективным И для бизнеса 0 вторжений Способом, решение проблем распределённых транзакций в сценарии микросервисов.

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

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

  11. Серое развёртывание:

    Для решения частых обновлений и запусков сервисов, откатов версий, быстрой итерации и совместной разработки внутри компании в этом проекте используется модифицированная стратегия балансировки нагрузки spring-load-balancing для достижения серого развёртывания.

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

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

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

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 |
|---|---|
| ![Предварительный просмотр.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) |

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

# Пожалуйста, отправьте сообщение, если вы обнаружите ошибку [issues](https://gitee.com/gdzWork/JPower/issues).

# Участвуйте в разработке:
1. Fork This warehouse.
2. Новая ветка feat_xxx.
3. Отправьте код.
4. Новый запрос на вытягивание.

# Спасибо за бесплатную лицензию с открытым исходным кодом от JetBrains:
[![JetBrains](docs/image/jetbrains.png)](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 )

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

Введение

JPower стремится реализовать микросервисную управленческую структуру, объединяющую различные инструменты. Базовая версия была разработана на основе обновления правительственных и коммерческих проектов. В качестве ядра используются Spring Boot 2.x и Spring Cloud 2020.x. Не забудьте поставить звёздочку (*star*) и подписаться на обновления. Информ... Развернуть Свернуть
Apache-2.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