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

OSCHINA-MIRROR/thinkgem-jeesite4-cloud

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

JeeSite

Платформа для разработки микросервисов - Spring Cloud 2024

SpringCloud-2021/2024 SpringBoot-V2.7/3.4 TypeScript-Vue3 JeeSite-V5.x star star star star

------
Если вам нравится JeeSite, пожалуйста, оставьте ⭐️ Star, ваша поддержка будет для нас стимулом к развитию.
------ ## Введение JeeSite Cloud обладает всеми функциями [JeeSite 4. x, 5. x](https://gitee.com/thinkgem/jeesite5) и представляет собой интеграцию [Spring Cloud](https://spring.io/projects/spring-cloud) в распределённых системах. Она использует удобство разработки JeeSite 4. x, 5. x, чтобы упростить разработку распределённых систем.JeeSite Cloud не повторяет уже существующие решения, а объединяет уже проверенные временем и надёжные сервисные фреймворки, используя стиль Spring Boot для упрощения конфигурации и реализации. Это позволяет переработать архитектуру и добавить множество полезных инструментов, что в итоге даёт разработчикам простую, понятную, удобную для развертывания и поддержки платформу для разработки распределённых систем. Интеграция с отличными компонентами Nacos для управления сервисами и центра конфигураций, интеграция Sentinel для защиты от перегрузки трафика; интеграция Zipkin для трассировки транзакций; интеграция Seata для распределённых транзакций и др., подробнее в разделе о технических решениях. **Основные характеристики: использование классической модели разработки для создания распределённых приложений, два слова — [простота], одно слово — [быстрота].** ## Технический обмен * Официальный сайт: * Документация: * Обратная связь: [【Новичкам обязательно прочитать】](https://gitee.com/thinkgem/jeesite5/issues/I18ARR) * Сбор требований: * Связаться с нами: * Подписаться на официальный WeChat, чтобы быть в курсе последних новостей:

JeeSite WeChat

* QQ группы: `127515876`, `209330483`, `223507718`, `709534275`, `730390092`, `1373527`, `183903863(внештатные)` * Группы WeChat: если вы не можете присоединиться, добавьте WeChat-помощника jeesitex для приглашения вас в группу

JeeSite WeChat группа

* Адреса репозиториев исходного кода: [Gitee](https://gitee. com/thinkgem/jeesite-cloud), [GitCode](https://gitcode. com/thinkgem/jeesite-cloud), [GitHub](https://github. com/thinkgem/jeesite-cloud) * Адреса репозиториев исходного кода версии с разделением: [Gitee](https://gitee. com/thinkgem/jeesite-vue), [GitCode](https://gitcode. com/thinkgem/jeesite-vue), [GitHub](https://github. com/thinkgem/jeesite-vue) * Адреса репозиториев исходного кода сборки: [GVP](https://gitee. com/thinkgem/jeesite/tree/v5. springboot3. cloud), [G-Star](https://gitcode. com/thinkgem/jeesite/overview? ref=v5. springboot3. cloud), [GitHub](https://github. com/thinkgem/jeesite/tree/v5. springboot3. cloud) ## Наши преимущества 1. На основе базового приложения JeeSite мы реализовали функции Cloud, используя классическую модель разработки, как если бы вы разрабатывали одно приложение. 2. Мы предоставляем инструменты для генерации кода для модулей микросервисов, что позволяет быстро создавать функции микросервисов, включая публикацию и вызов интерфейсов. 3. Мы объединили api и client в один проект, автоматически адаптируясь к вызовам своего клиента, что упрощает количество проектов. 4.Решение проблемы множественного наследования в Feign интерфейсах, таких как реализация базового класса для общих операций (создание, чтение, обновление, удаление) микросервисных интерфейсов, не требует от вас самостоятельной реализации.
  1. Унифицированная система аутентификации и авторизации, базовые данные микросервисов, уже предоставляют клиенты для запросов, другие модули микросервисных приложений могут напрямую получать данные о пользователях, организациях, правах доступа, словарях и т. д. Взаимодействие между микросервисами решает вопросы согласованности сессий и кэширования.

  2. Множество базовых сервисных утилит, таких как UserUtils, EmpUtils, EmpUserService, OfficeService и другие, могут напрямую получать данные из микросервисов с базовыми данными, вам не нужно беспокоиться о взаимодействии данных между веб-службами, мы уже это сделали за вас.

  3. Микросервисные компоненты Nacos, Sentinel, Zipkin запускаются и разворачиваются с использованием исходного кода, что облегчает разработку и отладку, без необходимости запуска вне среды разработки IDE.

  4. Поддержка динамического маршрутизации через шлюз Gateway, пользователи могут в любое время изменять правила маршрутизации без перезапуска сервиса, обеспечивая высокую гибкость управления.Использование Seata AT для управления транзакциями, с минимальным вторжением в систему, поддерживает случаи с несколькими веб-службами, а также поддерживает отдельные базы данных для каждого микросервиса.

  5. Интеграция рабочих процессов, предоставляющая независимый сервис BPM-движка, позволяет клиентам просто вызывать API, без необходимости загрузки сложного движка рабочих процессов.

  6. Поддержка двух вариантов выбора технологий для фронтенда: полный стек (Bootstrap+Beetl) и разделенный (TS+Vue3+Antdv).

  7. Другие преимущества (нажмите Ctrl+Shift и перейдите по ссылке): http://jeesite.com/docs/feature/## Технологические решения

  • Распределенная система: Spring Cloud 2024.0.0 + Alibaba 2023.0.3
  • Управление и обнаружение сервисов: Spring Cloud Eureka / Consul / Nacos 2.4
  • Централизованное управление конфигурациями: Spring Cloud Config / Nacos 2.4
  • Шлюз маршрутизации: Spring Cloud Gateway (динамический шлюз)
  • Декларативное взаимодействие сервисов: Spring Cloud OpenFeign
  • Клиентская балансировка нагрузки: Spring Cloud LoadBalancer
  • Защита от перегрузки трафика: Sentinel 1.8 (ограничение трафика, отказоустойчивость, защита от перегрузки)
  • Распределенная система управления транзакциями: Seata 1.8 (опциональный компонент)
  • Распределенная система отслеживания транзакций: Zipkin / SkyWalking (опциональный компонент)
  • Система управления рабочими процессами: Flowable 7.1 (опциональный компонент)
  • Многопользовательская архитектура SaaS: общие таблицы, независимые режимы, независимые базы данных
  • Шардинг данных: ShardingSphere (разделение таблиц, разделение чтения и записи)
  • Система мониторинга: Spring Boot Admin
  • Система сбора и анализа логов: ELK## Введение в подпроекты
  • Регистрация сервисов: jeesite-cloud-eureka: http://127.0.0.1:8970
  • Центр конфигураций: jeesite-cloud-config: http://127.0.0.1:8971/project/default
  • Регистрация сервисов и центр конфигураций Nacos версии (рекомендуется): http://127.0.0.1:8848/nacos/index.html
  • Гейт-роутинг: jeesite-cloud-gateway: http://127.0.0.1:8980/js/a/login
  • Основной модуль (единая система авторизации и аутентификации, платформа базовых данных) :
    • Основной проект: jeesite-cloud-module-core: http://127.0.0.1:8981/js
    • Клиентский проект (предоставляет другие модули для вызова): jeesite-cloud-module-core-client
  • Тестовый модуль 1 (пример CRUD для одной таблицы):
    • Основной проект модуля 1: jeesite-cloud-module-test1: http://127.0.0.1:8982/js
    • Клиентский проект модуля 1 (предоставляет другие модули для вызова): jeesite-cloud-module-test1-client
  • Тестовый модуль 2 (пример CRUD для древовидной таблицы):
    • Основной проект модуля 2: jeesite-cloud-module-test2: http://127.0.0.1:8983/js
    • Клиентский проект модуля 2 (предоставляет другие модули для вызова): jeesite-cloud-module-test2-client
  • Тестовый модуль 3 (модуль и CRUD, созданные с помощью генератора кода, этот модуль полностью создан с помощью генератора, без ручного кодирования):
    • Основной проект модуля 3: jeesite-cloud-module-test3: http://127.0.0.1:8985/js
    • Клиентский проект модуля 3 (предоставляет другие модули для вызова): jeesite-cloud-module-test3-client
  • Основные услуги бизнес-процесса (сервис движка бизнес-процессов, клиенту достаточно вызывать интерфейсы, без необходимости загрузки логики движка): - Основной проект бизнес-процесса: jeesite-cloud-module-bpm: http://127.0.0.1:8990
    • Клиентский проект (предоставляет другие модули для вызова): jeesite-cloud-module-bpm-client
  • Распределенные транзакции Seata (мониторинг добавлен после версии 1.5, порт 7091):
    • Основной проект сервиса: jeesite-cloud-module-seata: http://127.0.0.1:7091
    • Клиентский проект (предоставляет другие модули для вызова): jeesite-cloud-module-seata-client
  • Механизм отказа и ограничения скорости: jeesite-cloud-sentinel: http://127.0.0.1:9311
  • Трассировка транзакций: jeesite-cloud-zipkin: http://127.0.0.1:9411
  • Объяснение: основной проект - это поставщик услуг, а клиентский проект - это потребитель услуг

    Дополнительная информация

    Экосистема

  • Vue3 разделённая версия: https://gitee.com/thinkgem/jeesite-vue
  • JeeSite унифицированная аутентификация: https://jeesite.com/docs/oauth2-server
  • JFlow рабочий процесс движок: https://gitee.com/thinkgem/jeesite-jflow
  • Mybatis-Plus: https://gitee.com/thinkgem/jeesite-mybatisplus
  • Magic интерфейс быстрое развитие: https://gitee.com/thinkgem/jeesite-magic-api
  • Внутренне-внешние сети промежуточное ПО: https://my.oschina.net/thinkgem/blog/4624519

Быстрый запуск ### Инициализация базы данных

База данных версии JeeSite Cloud совпадает с базой данных версии JeeSite для одного компьютера. Вы можете скачать последний скрипт MySQL (только для версии для сообщества), рекомендуется использовать init-data.bat(sh) команду для инициализации (поддерживает различные типы баз данных). Документация по инициализации базы данных: http://jeesite.com/docs/install-deploy/#инициализация-базы-данных

Установка Redis

Redis — это кэширующая база данных, которая主要用于集中式管理共享会话和系统缓存。Если вы уже установили Redis, можно пропустить этот шаг. Из-за неудобства установки Redis на Windows, мы предоставляем файлы установки и скрипты установки для этой версии. Ссылка для загрузки: https://gitee.com/thinkgem/jeesite-cloud/attach_files найдите Redis-x64-4.0.2.2.zip и загрузите файл. Распакуйте Redis-x64-4.0.2.2.zip, запустите service-install.bat для установки службы Windows. По умолчанию адрес: 127.0.0.1; по умолчанию порт: 6379; по умолчанию пароль: 1234, который можно изменить в файле конфигурации.

Запуск службы Nacos

Nacos направлен на помощь в обнаружении, конфигурировании и управлении микросервисами. Nacos предоставляет набор простых и удобных функций, которые помогают быстро реализовать динамическое обнаружение сервисов, конфигурацию сервисов, метаданные сервисов и управление трафиком. Nacos помогает более гибко и легко создавать, развертывать и управлять платформами микросервисов. Nacos является инфраструктурой для создания современной архитектуры приложений, ориентированной на сервисы (например, микросервисная парадигма, парадигма облачных приложений). Если вы используете Nacos, вам не нужно развертывать jeesite-cloud-eureka и jeesite-cloud-config. JeeSite Cloud предлагает 2 способа развертывания, вы можете запустить его напрямую из src в IDE или загрузить jar для запуска: способ src:

  1. В Eclipse или IDEA найти проект jeesite-cloud-nacos.
  2. Запустите метод main класса NacosApplication, чтобы запустить сервис. способ jar:
  3. Ссылка для загрузки: https://github.com/com/alibaba/nacos/releases/download/2.4.3/nacos-server-2.4.3.zip
  4. Распакуйте nacos-server-2.4.3.zip, запустите /bin/startup.cmd(sh) для запуска сервиса. Настройка MySQL для хранения данных:
  5. По умолчанию Nacos использует базу данных Derby, но вы можете переключиться на MySQL.
  6. Найдите файл /nacos/src/main/resources/config/nacos-mysql.sql и импортируйте таблицы данных.
  7. Найдите файл конфигурации Nacos application.properties:
spring.datasource.platform=mysql
### Количество баз данных:
db.num=1
### URL подключения к базе данных:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=123456
# Если это файл application.properties, замените двоеточие после ключа на равно.

Внимание: В производственной среде обязательно измените ключи в файле конфигурации application.properties. Значение свойства nacos.core.auth.plugin.nacos.token.secret.key должно быть новым ключом. Поддержка пользовательской аутентификации: https://nacos.io/zh-cn/docs/v2/plugin/auth-plugin.html После запуска: Доступ через браузер: http://127.0.0.1:8848/nacos/index.html Логин/пароль: nacos После входа перейдите в меню Конфигурация -> Список конфигураций, нажмите кнопку Импортировать конфигурацию и выберите файл /config/src/main/resources/jeesite-cloud-yml.zip. Затем редактируйте информацию JDBC и Redis в файле с Data Id application.yml.

Запуск сервиса Sentinel

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

  1. В Eclipse или IDEA найдите проект jeesite-cloud-sentinel.
  2. Запустите метод main класса SentinelApplication, чтобы запустить сервис.
  3. Этот сервис является необязательным и запускается по необходимости. Доступ через браузер: http://127.0.0.1:9311 Логин/пароль: sentinel

Запуск сервиса Zipkin

Zipkin — это открытая распределенная система отслеживания, которая собирает тайм-стампы от каждого сервиса и строит граф зависимости через UI Zipkin.

  1. В Eclipse или IDEA найдите проект jeesite-cloud-zipkin. 2.Запустите метод main класса ZipkinApplication, чтобы запустить сервис.
  2. Этот сервис является опциональным и запускается по необходимости. Браузерный доступ: http://127.0.0.1:9411 Если используется SkyWalking, документация по установке доступна по ссылке: https://jeesite.com/docs/skywalking/

Запуск микросервисного проекта

  • В каждом микросервисе можно найти конфигурацию config/bootstrap.yml, которая задает адрес регистрации сервиса и конфигурационного центра.
  • Запустите основные классы в следующем порядке (из-за прямых зависимостей между сервисами, запускайте каждый сервис по отдельности):
    • /jeesite-cloud-gateway/.../GatewayApplication.java
    • /jeesite-cloud-module-core/.../CoreApplication.java
    • /jeesite-cloud-module-test1/.../Test1Application.java
    • /jeesite-cloud-module-test2/.../Test2Application.java
  • После успешного запуска всех сервисов, вы можете получить доступ к проекту через браузер по адресу:
    • Адрес: http://127.0.0.1:8980/js Логин/пароль: system/admin
    • Если при доступе возникают ошибки, подождите немного, возможно, сервисы еще не завершили запуск. Частые вопросы:
  • Если появляется ошибка не удалось получить ${service.core.name} свойство, проверьте конфигурацию, это означает, что конфигурационные данные не были получены из Nacos или конфигурационного центра Config. Обычно это связано с одной из следующих причин:
    1. В Nacos не импортирован файл конфигурации jeesite-cloud-yml.zip. 2.Если вы задали собственное имя группы Nacos, убедитесь, что оно совпадает с именем группы в bootstrap.yml.
    2. Если Nacos выдает ошибку при чтении yml, добавьте переменную окружения JAVA_OPTS со значением -Dfile.encoding=UTF-8 (способ настройки зависит от используемого IDE: Eclipse: Window->Preferences->General->Workspace->Text file encoding->Other->UTF-8; IDEA: File->Settings->Editor->File Encodings->Project Encoding->UTF-8)

Примеры вызова

Прокси-модуль для вызова

Вызовы между модулями

  • Модуль test2 вызывает модуль test1 (одно поле): http://127.0.0.1:8980/js/a/test2/testData/list - Клиент сервиса: /jeesite-cloud-module-test2/.../web/TestData2Controller.java - Провайдер сервиса: /jeesite-cloud-module-test1/.../service/TestDataService.java
  • Модуль test1 вызывает модуль test2 (дерево полей): http://127.0.0.1:8980/js/a/test1/testTree/list - Расположение потребителя услуги: /jeesite-cloud-module-test1/.../web/TestTree1Controller.java - Расположение поставщика услуги: /jeesite-cloud-module-test2/.../service/TestTreeService.java

Добавление нового микросервисного проекта

1. Создание модуля

  1. Перейти в меню: Системное управление -> Системные настройки -> Управление модулями, создать новый модуль, заполнить:
  • Название модуля: Тестовый модуль
  • Код модуля: test3 - Базовый путь генерации: заполнить корневую директорию нового модуля
  • Шаблон генерации кода: генерация кода микросервисного модуля (Cloud) Нажать кнопку "Сохранить и сгенерировать код", чтобы завершить создание кода микросервисного модуля.
  1. Создание нового микросервисного функционала, перейти в меню генерации кода, при генерации выбрать шаблон генерации кода Cloud. Версии до v4.2.2: Из-за отсутствия функции генерации микросервисного модуля в предыдущих версиях, необходимо использовать другие модули в качестве примера. Например, добавить новый микросервисный модуль с названием test3, все пути этого модуля будут находиться в ${adminPath}/test3/**. Процесс создания аналогичен test1, шаги следующие: Копировать проект jeesite-cloud-module-test1 в папку jeesite-cloud-module-test3:
  2. Изменить имя приложения в pom.xml:
<artifactId>jeesite-cloud-module-test1</artifactId>
Заменить на:
<artifactId>jeesite-cloud-module-test3</artifactId>
<artifactId>jeesite-cloud-module-test1-client</artifactId>
Заменить на:
<artifactId>jeesite-cloud-module-test3-client</artifactId>
  1. Изменить имя приложения в application.yml:
spring:
 application:
   name: jeesite-cloud-module-test3
  1. Изменить имя приложения в *Client.java:
service.test1 заменить на service.test3
  1. Изменить путь отображения в *Controller.java:
${adminPath}/test1 заменить на ${adminPath}/test3

2. Настройка параметров сервиса

В файле конфигурации jeesite-config или Nacos application.yml добавить новый микросервис:

# Список микросервисов
service:
```   test3:
   name: jeesite-cloud-module-test3
   path: ${server.servlet.context-path}

3. Настройка маршрутизации шлюза

В файле конфигурации jeesite-cloud-gateway добавить новый маршрут шлюза

spring:
 cloud:
   gateway:
     routes:
       # Тестовый модуль 3
       - id: test3
         uri: lb://jeesite-cloud-module-test3
         predicates:
           - Path=/js/a/test3/**,/js/a/jeesite-cloud-module-test3/**,/js/static/modules/test3/**

Внимание: новые конфигурации следует добавлять выше модуля базовых прав доступа core.

Микросервисы: добавление, удаление, изменение и просмотр

Перейдите в меню "Кодогенератор", используйте методы, аналогичные одиночной версии, но при генерации кода выберите шаблон версии Cloud.

Заявление о лицензии

  1. Опубликовано под лицензией Apache License Version 2.0, допускается использование в коммерческих проектах, но необходимо соблюдать следующие дополнительные условия.

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

  3. При использовании данного программного обеспечения, которое интегрирует множество открытых источников, необходимо соблюдать условия лицензий на использование этих открытых источников. 4.В расширенном коде (в коде, модифицированном или производном от исходного кода) должны быть сохранены оригинальные условия лицензии, уведомления об авторских правах и другие требования оригинальных авторов (уважайте авторские права оригинальных авторов и не удаляйте или не изменяйте информацию о авторстве в файлах, таких как Copyright и @author).

  4. Если вы используете некоторые части кода или функции из данного программного обеспечения в качестве примера, сохраните уведомления об авторских правах и информацию об авторах в исходных файлах. Укажите источник в заметном месте описания вашего программного обеспечения, например: данное программное обеспечение основано на платформе быстрого разработки JeeSite и приложите ссылку: http://jeesite.com

  5. Любые юридические споры или ответственность, возникшие в результате использования данного программного обеспечения, не относятся к нашей компании.

  6. Если вы улучшили данное программное обеспечение, мы будем рады принять ваш вклад и двигаться вперед вместе.

  7. В этом проекте подана заявка на авторское право, пожалуйста, уважайте открытый исходный код, спасибо за чтение.

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

Поддержка и обслуживание

  • Без финансовой поддержки сложно развиваться, особенно для хорошего продукта.Если JeeSite помог вам, пожалуйста, поддержите нас. Ваша поддержка позволит нам делать больше для общества, предоставлять больше ресурсов и возвращать их обществу. Пожалуйста, дайте нам немного мотивации, мы очень благодарны нашим друзьям, которые уже поддерживают нас!
  • Свяжитесь с нами: посетите страницу поддержки и обслуживания: http://s.jeesite.com

Git: глобальные настройки

1.  Отключение преобразования символов новой строки при коммите и пулле
git config --global core.autocrlf false
2.  Отказ от коммита файлов, содержащих смешанные символы новой строки
git config --global core.safecrlf true

Введение

Использование классического подхода к разработке, создание распределённого приложения — это быстро и просто. Интеграция на основе Spring Cloud для набора распределённых систем. Включает все функции JeeSite4 для одиночной установки, единую аутентификацию, единое управление базовыми данными, что упрощает разработку микросервисов. Интеграция с о... Развернуть Свернуть
JavaScript и 6 других языков
Apache-2.0
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/thinkgem-jeesite4-cloud.git
git@api.gitlife.ru:oschina-mirror/thinkgem-jeesite4-cloud.git
oschina-mirror
thinkgem-jeesite4-cloud
thinkgem-jeesite4-cloud
v5.springboot3.cloud