同步操作将从 wgw/education-cloud 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
QQ群:1093045884
在线教育系统采用前后端分离架构,前端为独立工程。
Nacos
Hystrix
+ Turbine
Ribbon
Feign
Spring Cloud Zuul
JWT
Spring Boot Admin
/ Spring Boot Actuator
Nacos
MySQL 5.7
Docker
+ docker-compose
Maven
swagger-bootstrap-ui
阿里云
Redis
vue
education-cloud 致力于打造一个各行业都适用的分布式在线教育系统。系统采用前后端分离模式,前台采用vue.js为核心框架,后台采用Spring Cloud Hoxton.RELEASE、Spring Cloud JWT& Spring Cloud Alibaba为核心框架。系统目前主要功能有课程点播功能,支持多家视频云的接入,课程附件管理功能,支持多家存储云的接入,讲师管理功能,支持讲师入驻功能,可以帮助个人或者企业快速搭建一个轻量级的在线教育平台。 该系统具有如下特点:
前后端分离架构,客户端和服务端纯Token交互;
微服务防护,客户端请求资源只能通过微服务网关获取;
集成Prometheus,SpringBootAdmin,多维度监控微服务;
集成Spring Cloud Alibaba Nacos服务治理和集中配置管理;
集成Zuul网关熔断机制
集成Swagger接口文档 为swagger-bootstrap-ui,界面更友好,通过网关统一聚合后端微服务API文档
微服务Docker化,使用Docker Compose一键部署;
集成Skywalking APM;
集成ELK,集中管理日志,便于问题分析;
支持Kubernetes集群部署(开发中);
提供详细的使用文档和搭建教程 (不断完善中);
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 项目数据库文件
Windows环境部署(IDEA 启动)
####后端启动
运行项目之前,请确认以环境下载并安装,安装方式可以参考doc/deploy目录安装指南,MySql5.7+
、Redis4+
、elastisearch6.8.3
、Nocos1.2
(使用搜索elastisearch需安装中文分词器IKAnalyzer);
创建education-course
、education-system
、education-user
、nacos
四个数据库,数据库脚本文件放置在项目doc/sql(包括nacos sql)文件夹下,直接导入即可;
安装IDEA并导入项目源码,导入之前,IDEA需要安装lombok插件。源码仓库:git clone https://gitee.com/wewwww/education-cloud.git;
导入之后,检查nacos中各个微服务相关配置文件配置的mysql,redis,elastisearch(注意配置文件es的集群名称)连接配置是否正确;
项目启动有先后顺序,大家要按照以下顺序启动。
education-cloud-course
直接运行com.education.cloud.CourseServiceApplication的main函数即可;education-cloud-system
直接运行com.education.cloud.SystemServiceApplication的main函数即可;education-cloud-user
直接运行com.education.cloud.UserServiceApplication的main函数即可;education-cloud-gateway
直接运行com.education.cloud.GatewayApiApplication的main函数即可;education-cloud-job
直接运行com.education.cloud.CrontabPlanApplication的main函数即可;education-cloud-server-admin
直接运行com.education.cloud.server.admin.ServerAdminApplication的main函数即可;查看微服务状态 http://localhost:5721/ 账号密码 admin/123456
测试接口文档访问地址 http://localhost:5840/api/doc.html
Docker环境部署
使用虚拟机安装CentOS7.5+或者使用云服务器,安装方式自行百度.
Docker、docker-compose、Harbor环境的安装请参考 doc/deploy目录
请在IDEA中,在项目根目录下即education-cloud
执行 mvn install ,会自动把各个服务打包成镜像并上传到Harbor仓库(打包机也需要安装Docker环境,可参考doc/deploy下指南)
前端项目打包参考下方前端启动
,前端项目打完包,需要手动把镜像推送到镜像仓库,具体可参考个前端项目readme说明
本项目使用docker-compose自动化部署
部署文件
为了方便部署,采用shell脚本一键部署的方式,具体查看doc/script/start.sh (支持传入参数 pull、run、pullrun、stop、restart、removeAll)脚本文件。
BASE_IMAGE_NAME
,请修改为你在harbor中的镜像前缀./chmod u+x start.sh
./start.sh pullrun
表示拉去镜像并创建容器education-cloud-admin
目录,例如执行 docker build -t 127.0.0.1/edu-cloud/education-admin-web:latest .
即可构建镜像,然后把镜像推送到远程仓库Harbor即可docker push 127.0.0.1/edu-cloud/education-admin-web:latest
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/
如果对您对此项目有兴趣,可以点 "Star" 支持一下 谢谢! ^_^
或者您可以 "follow" 一下
该项目参考了领课教育系统,感谢领课网络提供的这么优秀的项目
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。