/store

随手练习js

Primary LanguageJavaScriptApache License 2.0Apache-2.0

学成在线项目介绍

项目概述

学成在线借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计**,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。

功能模块

当前市场的在线教育模式多种多样,包括:B2C、C2C、B2B2C等业务模式,学成在线采用B2B2C业务模式,即向企业或个人提供在线教育平台提供教学服务,老师和学生通过平台完成整个教学和学习的过程,市场上类似的平台有:网易云课堂、腾讯课堂等,学成在线的特点是IT职业课程在线教学。

大模块介绍:

功能模块名称 功能说明
门户 在首页、活动页、专题页等页面提供课程学习入口。
学习中心 学生登录学习中心在线学习课程。
社交系统 社交系统为老师和学生交流搭建沟通的平台,包括:问答系统、评论系统、论坛等,
学生和老师通过问答系统提问问题、回答问题,通过评论系统对老师授课进行评论。
教学管理中心 教师登录教学管理中心进行课程管理、资源管理、考试管理等教学活动。
系统管理中心 系统管理员登录系统管理中心进行分类管理、运维管理等功能。

技术架构

学成在线采用当前流行的前后端分离架构开发,由用户层、UI层、微服务层、数据层等部分组成,为PC、App、H5等客户端用户提供服务。下图是系统的技术架构图:

各模块说明:

序号 名称 功能描述
1 用户层 用户层描述了本系统所支持的用户类型包括:pc用户、app用户、h5用户。pc用户通过
浏览器访问系统、app用户通过android、ios手机访问系统,H5用户通过h5页面访问系
统。
2 CDN CDN全称Content Delivery Network,即内容分发网络,本系统所有静态资源全部通过
CDN加速来提高访问速度。系统静态资源包括:html页面、js文件、css文件、image图
片、pdf和ppt及doc教学文档、video视频等。
3 负载均衡 系统的CDN层、UI层、服务层及数据层均设置了负载均衡服务,上图仅在UI层前边标注
了负载均衡。每一层的负载均衡会根据系统的需求来确定负载均衡器的类型,系统支持
4层负载均衡+7层负载均衡结合的方式,4层负载均衡是指在网络传输层进行流程转发,
根据IP和端口进行转发,7层负载均衡完成HTTP协议负载均衡及反向代理的功能,根据
url进行请求转发。
4 UI层 UI层描述了系统向pc用户、app用户、h5用户提供的产品界面。根据系统功能模块特点
确定了UI层包括如下产品界面类型:1)面向pc用户的门户系统、学习中心系统、教学
管理系统、系统管理中心。2)面向h5用户的门户系统、学习中心系统。3)面向app
用户的门户系统、学习中心系统未在上图标注,在app项目中有详细说明。
5 微服务层 微服务层将系统服务分类三类:前端服务、后端服务及系统服务。前端服务:主要为学
习用户提供学习服务。后端服务:主要为管理用户提供教学管理服务。系统服务:公
共服务,为系统的所有微服务提供公共服务功能。服务网关:提供服务路由、负载均
衡、认证授权等服务。
6 数据层 数据层描述了系统的数据存储的内容类型,持久化的业务数据使用MySQL和MongoDB
保存,其中MongoDB中主要保存系统日志信息。消息队列:存储系统服务间通信的消
息,本身提供消息存取服务,与微服务层的系统服务连接。索引库:存储课程信息的索
引信息,本身提供索引维护及搜索的服务,与微服务层的系统服务连接。缓存:作为系
统的缓存服务,存储课程信息、分类信息、用户信息等,与微服务层的所有服务连接。
文件存储:提供系统静态资源文件的分布式存储服务,文件存储服务器作为CDN服务器
的数据来源,CDN上的静态资源将最终在文件存储服务器上保存多份。流媒体服务:
作为流媒体服务器,存储所有的流媒体文件。
7 外部系统接口 1)微信、QQ、微博登录接口,本系统和微信、QQ、微博系统对接,用户输入微信、
QQ、微博的账号和密码即可登录本系统。2)微信、QQ、微博分享接口,本系统和微
信、QQ、微博系统对接,可直接将本系统的课程资源信息分享到微信、QQ、微博。
3)支付宝、微信、网银支付接口,本系统提供支付宝、微信、网银三种支付接口。
4)短信接口,本系统与第三方平台对接短信发送接口。5)邮件接口,本系统需要连
接第三方的smpt邮件服务器对外发送电子邮件。6)微信公众号,本系统与微信公众号
平台接口,用户通过微信公众号访问H5页面。7)点播、直播,前期视频点播与直播采
用第三方服务方式,本系统与第三方点、直播服务对接,对外提供视频点播与直播服
务。8)OSS存储,前期静态资源文件的存储采用第三方服务方式,本系统与第三方提
供的OSS存储服务对接,将系统的静态资源文件存储到第三方提供的OSS存储服务器
上。9)CDN,本系统与第三方CDN服务对接,使用CDN加速服务来提高本系统的访问
速度。
8 DevOps DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,
用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、
协作与整合。本项目供了许多开发、运营、维护支撑的系统,包括:Eureka服务治理
中心:提供服务治理服务,包括:服务注册、服务获取等。Spring Cloud Config服务
配置管理中心:提供服务配置管理服务,包括:配置文件更新、配置文件下发等。
Hystrix Dashboard服务熔断监控:监控熔断的请求响应时间、成功率等。Zipkin服务
追踪监控:监控服务调用链路健康情况。Jenkins持续集成服务:提供系统持续集成服
务。Git/GitLab代码管理服务:提供git代码管理服务。ELK日志分析服务:提供elk日志分
析服务,包括系统运行日志分析、告警服务。Docker容器化部署服务:将本系统所有
服务采用容器化部署方式。Maven项目管理工具:提供管理项目所有的Java包依赖、项
目工程打包服务。

技术栈

重点了解微服务技术栈

学成在线服务端基于Spring Boot构建,采用Spring Cloud微服务框架。

  • 持久层:MySQL、MongoDB、Redis、ElasticSearch

  • 数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等

  • 业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis等。

  • 控制层:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等

  • 微服务治理:Eureka、Zuul、Hystrix、Spring Cloud Config等