当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于微服务架构的多语言学习系统技术方案

技术编号:28294963 阅读:24 留言:0更新日期:2021-04-30 16:18
本发明专利技术公开了一种基于微服务架构的多语言学习系统。本系统包括:微服务系统架构模块与多语言学习业务模块;微服务系统架构模块为应用提供基础的软件架构支持,具体包含网关子模块、服务注册与服务发现子模块、链路追踪子模块、日志收集子模块;多语言学习业务模块为系统提供业务功能支持,具体包含用户业务子模块与课程业务子模块,提供用户鉴权服务、用户信息服务、课程服务、通知服务、评论服务、文件服务、应用更新服务、邮箱服务,同时依赖各自的数据库实例以及文件存储服务、SMTP服务器等外部服务。本发明专利技术为教师提供参与和监督学习过程的条件,同时也为学生提供充分利用自主性学习的条件,为教师和学生提供了更加灵活的教学和学习途径。

【技术实现步骤摘要】
一种基于微服务架构的多语言学习系统
本专利技术涉及计算机应用领域,具体涉及一种基于微服务架构的多语言学习系统。
技术介绍
互联网信息技术的发展给外语教育领域带来了新的挑战,外语教育与信息技术的结合是未来教师开展教学活动的趋势。互联网技术为外语教育提供了新的教学模式、学习模式,以及更加丰富、全面的教育资源。教师利用数字化的学习平台,可以提高教师教学效率,同时能充分发挥学生自主学习的能动作用,为教师和学生提供更加灵活的教学和学习途径。微服务架构是主流的软件架构之一,在互联网时代,微服务架构的设计为越来越复杂的业务场景提供了一种解决方案。微服务架构在业务层和链路层对系统进行细分,具备耦合度低、扩展方便、可维护性高、可靠性高等特点。SpringCloud是一系列成熟的、基于SpringBoot风格封装的框架的组合,它提供了一整套微服务的解决方案。目前的现有技术之一,是一些与互联网紧密结合的外语学习系统,大多侧重于语言学习。语言学习类外语学习系统更注重于学生的学习模式,此类有扇贝单词、开言英语、英语流利说等专注于英语外语学习的应用,也有专注于多语种学习的多邻国。语言学习类系统大多围绕单词书、场景等开展学习,通过词语句的听说读写对学生进行有针对性辅导。同时,该类学习系统大多结合打卡体系、成就体系来培养用户学习的习惯。这些系统的缺点是忽视了传统课堂教育的重要性,其基于单词书、场景的学习模式无法很好地与线下课堂教学相结合,仅为外语教育提供学生自主学习的学习途径。其次,外语教师的角色完全被系统所替代,教师无法参与到学生的学习过程中,无法发挥教师的能动作用。目前的现有技术之二,是课程学习类应用系统,它们更注重教师的教学模式。诸如腾讯企鹅辅导、腾讯课堂等,都是利用视频直播辅助学习的系统。课程学习类系统不仅限于外语教学,并且提供了教师在课程中向学生提问、布置作业、测试等功能。这些系统的缺点是过于依赖教师线上直播教学和教学过程中的互动,而没有为学生线下自主学习提供有效的途径,学生无法充分利用线下日常生活的零碎时间进行自主学习。
技术实现思路
本专利技术的目的是克服现有方法的不足,提出了一种基于微服务架构的多语言学习系统。本专利技术解决的主要问题是,与语言学习类系统相比,本专利技术解决缺少教师监督、教师参与学习过程的问题;与课程学习类系统相比,本专利技术为师生提供课后练习、自主学习等功能,解决学生无法充分利用零碎时间在平台进行自主学习的问题。为了解决上述问题,本专利技术提出了一种基于微服务架构的多语言学习系统,所述系统包括:微服务系统架构模块与多语言学习业务模块;所述微服务系统架构模块为应用提供基础的软件架构支持,具体包含网关子模块、服务注册与服务发现子模块、链路追踪子模块、日志收集子模块;所述多语言学习业务模块为系统提供业务功能支持,具体包含用户业务子模块与课程业务子模块,提供用户鉴权服务、用户信息服务、课程服务、通知服务、评论服务、文件服务、应用更新服务、邮箱服务,同时依赖各自的数据库实例以及文件存储服务、SMTP服务器等外部服务。优选地,所述网关子模块,由网关服务、用户鉴权服务与缓存数据库组成;网关服务是系统的用户请求入口,负责处理和转发客户端的用户请求,并实现用户请求鉴权功能,拦截没有指定权限的用户访问特定资源的请求;用户鉴权服务负责处理用户鉴权请求,实现用户注册、登陆等逻辑;缓存数据库将负责缓存用户登陆信息;用户的登陆请求由所述用户鉴权服务处理,当用户成功登陆后,所述用户鉴权服务将会把用户信息转发给所述网关服务,所述网关服务将用户信息缓存在所述缓存数据库中;当用户发起其他需要鉴权的请求,将由所述网关服务获取当前用户信息,根据当前系统配置进行鉴权,若通过鉴权,所述网关服务将会把流量转发到指定服务,否则将返回相应错误;用户登出时,所述用户鉴权服务将用户登出的信息转发给所述网关服务,所述网关服务从所述缓存数据库中清除该用户的信息。优选地,所述服务注册与服务发现子模块,针对SpringBoot服务和非SpringBoot服务采用两套解决方案;对于SpringBoot服务,采用Consul作为服务注册中心,使用SpringCloudConsul框架使得SpringBoot服务主动注册,并对系统内部暴露健康数据接口;各个SpringBoot微服务会在服务启动的时候向所述Consul发起注册请求,并定期发送服务心跳和健康监控数据;当服务需要调用其他服务时,通过所述Consul服务中心进行服务发现,得到其他服务的IP地址列表和负载信息,然后根据该信息选择某一IP地址进行服务调用;对于非SpringBoot服务,使用DNS来实现服务发现,当数据库等服务作为Docker容器被部署到Docker或DockerSwarm后,其他服务可以根据该服务的名称直接在Docker的DNS模块的作用下将流量转发到该服务;对于外部服务,无需进行服务注册与服务发现。优选地,所述链路追踪子模块,由Sleuth单元、RabbitMQ单元、Zipkin单元、Kibana单元、Elasticsearch单元组成;Sleuth单元负责收集链路数据,RabbitMQ单元负责缓存链路数据,Zipkin单元负责处理链路数据,Elasticsearch单元负责持久化数据,同时,Zipkin单元和Kibana单元提供了检索和分析链路数据的面板;系统的各微服务使用所述Sleuth单元进行链路ID分配,并收集链路上的特定数据,数据收集完毕后,所述Sleuth单元将数据上报到所述RabbitMQ单元消息队列中缓存,所述Zipkin单元将异步消费所述RabbitMQ单元中的消息并对链路数据进行处理,然后统一存储至所述Elasticsearch单元中。优选地,所述日志收集子模块,由Logback单元、RabbitMQ单元、Logstash单元、Kibana单元、Elasticsearch单元组成;Logback单元负责收集日志数据,RabbitMQ单元负责缓存数据,Logstash单元负责处理和转发数据,Kibana单元提供数据检索和分析面板,Elasticsearch单元作为数据库持久化数据;系统使用所述Logback单元收集各微服务的业务日志,一方面,服务通过所述Logback单元把业务日志写入到本地文件中,然后按时间按大小对文件进行分割,另一方面,服务通过所述Logback单元将业务日志转换成JSON结构,然后发送到所述RabbitMQ单元消息队列中缓存;所述Logstash单元消费所述RabbitMQ单元中的日志消息,再次经过结构上的处理并存储到所述Elasticsearch单元中。优选地,所述用户业务子模块,由用户鉴权服务单元、用户信息服务单元、文件服务单元、邮箱服务单元等内部服务单元与外部文件存储单元、SMTP服务器单元共同组成,提供了用户鉴权、用户信息获取与修改、用户关注、用户动态等功能;在用户鉴权中,系统将用户分为教师用户与学生用户两类,用户注册过程中,所述用户鉴权服务单元本文档来自技高网
...

【技术保护点】
1.一种基于微服务架构的多语言学习系统,其特征在于,所述系统包括:/n微服务系统架构模块与多语言学习业务模块;/n所述微服务系统架构模块为应用提供基础的软件架构支持,具体包含网关子模块、服务注册与服务发现子模块、链路追踪子模块、日志收集子模块;/n所述多语言学习业务模块为系统提供业务功能支持,具体包含用户业务子模块与课程业务子模块,提供用户鉴权服务、用户信息服务、课程服务、通知服务、评论服务、文件服务、应用更新服务、邮箱服务,同时依赖各自的数据库实例以及文件存储服务、SMTP服务器等外部服务。/n

【技术特征摘要】
1.一种基于微服务架构的多语言学习系统,其特征在于,所述系统包括:
微服务系统架构模块与多语言学习业务模块;
所述微服务系统架构模块为应用提供基础的软件架构支持,具体包含网关子模块、服务注册与服务发现子模块、链路追踪子模块、日志收集子模块;
所述多语言学习业务模块为系统提供业务功能支持,具体包含用户业务子模块与课程业务子模块,提供用户鉴权服务、用户信息服务、课程服务、通知服务、评论服务、文件服务、应用更新服务、邮箱服务,同时依赖各自的数据库实例以及文件存储服务、SMTP服务器等外部服务。


2.如权利要求1所述的一种基于微服务架构的多语言学习系统,其特征在于,所述网关子模块,由网关服务、用户鉴权服务与缓存数据库组成;网关服务是系统的用户请求入口,负责处理和转发客户端的用户请求,并实现用户请求鉴权功能,拦截没有指定权限的用户访问特定资源的请求;用户鉴权服务负责处理用户鉴权请求,实现用户注册、登陆等逻辑;缓存数据库将负责缓存用户登陆信息;
用户的登陆请求由所述用户鉴权服务处理,当用户成功登陆后,所述用户鉴权服务将会把用户信息转发给所述网关服务,所述网关服务将用户信息缓存在所述缓存数据库中;当用户发起其他需要鉴权的请求,将由所述网关服务获取当前用户信息,根据当前系统配置进行鉴权,若通过鉴权,所述网关服务将会把流量转发到指定服务,否则将返回相应错误;用户登出时,所述用户鉴权服务将用户登出的信息转发给所述网关服务,所述网关服务从所述缓存数据库中清除该用户的信息。


3.如权利要求1所述的一种基于微服务架构的多语言学习系统,其特征在于,所述服务注册与服务发现子模块,针对SpringBoot服务和非SpringBoot服务采用两套解决方案;
对于SpringBoot服务,采用Consul作为服务注册中心,使用SpringCloudConsul框架使得SpringBoot服务主动注册,并对系统内部暴露健康数据接口;各个SpringBoot微服务会在服务启动的时候向所述Consul发起注册请求,并定期发送服务心跳和健康监控数据;当服务需要调用其他服务时,通过所述Consul服务中心进行服务发现,得到其他服务的IP地址列表和负载信息,然后根据该信息选择某一IP地址进行服务调用;
对于非SpringBoot服务,使用DNS来实现服务发现,当数据库等服务作为Docker容器被部署到Docker或DockerSwarm后,其他服务可以根据该服务的名称直接在Docker的DNS模块的作用下将流量转发到该服务;
对于外部服务,无需进行服务注册与服务发现。


4.如权利要求1所述的一种基于微服务架构的多语言学习系统,其特征在于,所述链路追踪子模块,由Sleuth单元、RabbitMQ单元、Zipkin单元、Kibana单元、Elasticsearch单元组成;Sleuth单元负责收集链路数据,RabbitMQ单元负责缓存链路数据,Zipkin单元负责处理链路数据,Elasticsearch单元负责持久化数据,同时,Zipkin单元和Kibana单元提供了检索和分析链路数据的面板;
系统的各微服务使用所述Sleuth单元进行链路ID分配,并收集链路上的特定数据,数据收集完毕后,所述Sleuth单元将数据上报到所述RabbitMQ单元消息队列中缓存,所述Zipkin单元将异步消费所述Ra...

【专利技术属性】
技术研发人员:周凡郑贵锋陈小燕
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1