Распределённая онлайн-платформа для образования
Это система для онлайн-образования, которая подходит для разных отраслей. Система основана на платформе Spring Cloud Alibaba для микросервисной разработки, использует Spring Boot 2.2.0 и Spring Cloud (Hoxton.RELEASE) с основными компонентами, а также Nacos для регистрации и настройки центра. Фронтенд реализован с помощью vue-element-admin.
Официальный QQ-чат (получите SQL-скрипт после добавления в группу)
Присоединиться к группе можно по ссылке: //shang.qq.com/wpa/qunwpa?idkey=eda8d54aba0a0d56d9030be06b7b8fdd07f438bf113b7f11fd8541fc9f181feb. QQ-чат: 1093045884.
Связанные проекты
Онлайн-система образования использует архитектуру разделения фронтенда и бэкенда, где фронтенд является отдельным проектом. Education-cloud — это бэкенд-проект, основанный на Spring Cloud Alibaba. Education-cloud-web — это фронтенд-проект с порталом, который использует Vuejs и Nuxt.js. Education-cloud-admin — это административный бэкенд, использующий vue-element-admin в качестве основы.
Выбор технологий
Проект education-cloud стремится создать распределённую онлайн-платформу для образования, подходящую для различных отраслей. Платформа использует разделение фронтенда и бэкенда с фронтендом на основе Vue.js и бэкендом на Spring Cloud Hoxton.RELEASE, Spring Cloud JWT и Spring Cloud Alibaba. Основные функции включают потоковую передачу курсов, поддержку нескольких облачных видеосервисов, управление учебными материалами, поддержку нескольких облачных хранилищ, управление преподавателями и возможность размещения преподавателей.
Система имеет следующие особенности:
Фронтенд включает:
Бэкенд включает:
Структура проекта:
education-cloud
├── education-cloud-gateway -- модуль на основе Zuul
├── education-cloud-job -- модуль задач
├── education-cloud-server-admin -- модуль мониторинга
├── education-cloud-course -- модуль курсов
| |─education-cloud-course-feign API-интерфейсы модуля курсов
| │─education-cloud-course-service модуль услуг курсов
├── education-cloud-system -- системный модуль управления
| |─education-cloud-system-feign API-интерфейсы системного модуля
| |─education-cloud-system-service системный модуль услуг
├── education-cloud-user -- пользовательский модуль
| |─education-cloud-user-feign API-интерфейсы пользовательского модуля
| |─education-cloud-user-service пользовательский сервисный модуль
├── education-cloud-util -- общий модуль
├── doc -- документы и инструкции
|─config файлы конфигурации промежуточного программного обеспечения и системные файлы конфигурации
|─deploy руководство по установке среды инструментов
|─docker файл развёртывания среды Docker
|─script файл сценария однократного развёртывания, в основном запускающий файл docker-compose службы
|─sql Файлы базы данных проекта
Развёртывание поддерживается как вручную, так и с помощью Docker:
Демонстрация:
education-course
, education-system
, education-user
, nacos
четырёх баз данных. Файлы со сценариями создания базы данных находятся в папке проекта doc/sql (включая nacos sql), их можно напрямую импортировать;установить IDEA и импортировать проект. Перед этим необходимо установить плагин lombok в IDEA. Репозиторий исходного кода: git clone https://gitee.com/wewwww/education-cloud.git;
после импорта проверить конфигурацию mysql, redis, elasticsearch (обратить внимание на конфигурацию es кластера) в каждом микросервисе в NACOS;
порядок запуска проекта:
education-cloud-course
: просто запустить функцию main класса com.education.cloud.CourseServiceApplication;education-cloud-system
: просто запустить функцию main класса com.education.cloud.SystemServiceApplication;education-cloud-user
: просто запустить функцию main класса com.education.cloud.UserServiceApplication;education-cloud-gateway
: просто запустить функцию main класса com.education.cloud.GatewayApiApplication;education-cloud-job
: просто запустить функцию main класса com.education.cloud.CrontabPlanApplication;education-cloud-server-admin
: просто запустить функцию main класса com.education.cloud.server.admin.ServerAdminApplication;проверить статус микросервиса http://localhost:5721/, логин: admin, пароль: 123456;
протестировать доступ к интерфейсу API http://localhost:5840/api/doc.html;
Развёртывание в среде Docker
используйте виртуальную машину для установки CentOS 7.5 или облачный сервер, способ установки определяется самостоятельно.
установите Docker, docker-compose и среду Harbor согласно инструкции в каталоге doc/deploy;
в IDEA в корневом каталоге проекта education-cloud выполните mvn install, это автоматически упакует каждый сервис в образ и загрузит его в репозиторий Harbor (для сборки образов также требуется установка Docker, см. инструкцию в каталоге doc/deploy);
следуйте инструкциям по запуску фронтенд-проекта, после завершения упаковки фронтенд-проект необходимо вручную отправить образ в репозиторий изображений, конкретные шаги см. в README фронтенд-проекта;
этот проект использует docker-compose для автоматического развёртывания;
файл развёртывания:
для удобства развёртывания используется сценарий оболочки для однократного развёртывания, подробности см. в файле doc/script/start.sh (поддерживает параметры pull, run, pullrun, stop, restart, removeAll).
education-cloud-web
, например, выполните docker build -t 127.0.0.1/edu-cloud/education-cloud-ui-web:latest .
для создания образа, а затем отправьте образ в удалённый репозиторий, такой как Harbor;docker push 1127.0.0.1/edu-cloud/education-admin-web:latest
;
Скачать образ docker pull sebp/elk:700;
Запустить образ, указать объём памяти ES;
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 4560:4560 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -it --name elk sebp/elk:700
Необходимо изменить конфигурацию logstash, открыть новое командное окно и выполнить следующую команду docker;
Используйте команду exec для входа в контейнер;
docker exec -it elk /bin/bash;
После входа в контейнер измените /etc/logstash/conf.d/02-beats-input.conf;
input {
tcp {
port => 4560
codec => json_lines
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
}
}
Сохраните и выйдите из контейнера. Затем перезапустите контейнер, чтобы конфигурация вступила в силу.
docker restart elk;
Доступ к http://localhost:5601/.
Если вам интересен этот проект, вы можете поставить «звездочку» для поддержки или подписаться на обновления. Спасибо! ^_^
Или вы можете подписаться на нас.
Этот проект основан на системе обучения класса, спасибо за такой замечательный проект от класса обучения.
Пожалуйста, обратите внимание на QR-код, мы будем регулярно делиться полезными материалами.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )