【技术实现步骤摘要】
一种基于微服务架构的多语言学习系统
本专利技术涉及计算机应用领域,具体涉及一种基于微服务架构的多语言学习系统。
技术介绍
互联网信息技术的发展给外语教育领域带来了新的挑战,外语教育与信息技术的结合是未来教师开展教学活动的趋势。互联网技术为外语教育提供了新的教学模式、学习模式,以及更加丰富、全面的教育资源。教师利用数字化的学习平台,可以提高教师教学效率,同时能充分发挥学生自主学习的能动作用,为教师和学生提供更加灵活的教学和学习途径。微服务架构是主流的软件架构之一,在互联网时代,微服务架构的设计为越来越复杂的业务场景提供了一种解决方案。微服务架构在业务层和链路层对系统进行细分,具备耦合度低、扩展方便、可维护性高、可靠性高等特点。SpringCloud是一系列成熟的、基于SpringBoot风格封装的框架的组合,它提供了一整套微服务的解决方案。目前的现有技术之一,是一些与互联网紧密结合的外语学习系统,大多侧重于语言学习。语言学习类外语学习系统更注重于学生的学习模式,此类有扇贝单词、开言英语、英语流利说等专注于英语外语学习的应用,也有专注于多语种学习的多邻国。语言学习类系统大多围绕单词书、场景等开展学习,通过词语句的听说读写对学生进行有针对性辅导。同时,该类学习系统大多结合打卡体系、成就体系来培养用户学习的习惯。这些系统的缺点是忽视了传统课堂教育的重要性,其基于单词书、场景的学习模式无法很好地与线下课堂教学相结合,仅为外语教育提供学生自主学习的学习途径。其次,外语教师的角色完全被系统所替代,教师无法参与到学生 ...
【技术保护点】
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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。