基于Spring Cloud的面试题库系统设计与实现

2019-01-08 03:16吕太之蒋玉婷游学军
电脑知识与技术 2019年33期
关键词:微服务智慧校园

吕太之 蒋玉婷 游学军

摘要:就业是高职教育的生命,是衡量高职院校办学成功与否的试金石。高职学生普遍缺乏面试过程中专业知识测评的指导和训练,影响了学生的就业,基于此设计并实现了面试题库系统。系统根据MVVM设计思路,构建了前后端分离的架构。后台基于SpringCloud的微服务架构实现,前台采用Vue框架实现展示,使用Docker完成分布式微服务部署。系统满足了学生专业知识测评的训练,有效促进智慧化校园的建设。

关键词:面试题库系统;微服务;SpringCloud;智慧校园;MyBatis

中图分类号:TP312 文献标识码:A

文章编号:1009-3044(2019)33-0030-03

1概述

高职院校是为社会培养具有创新能力的复合型技术人才,就业导向是高职教育的办学宗旨。衡量高职院校办学成功与否的试金石就是其毕业生能否充分就业。毕业生要想走上工作岗位,面试是必不可少的步骤。面试测评的主要内容包括求职者的专业知识水平、综合分析能力、语言表达能力、应变能力、仪态、气质、口才和某些特殊技能等。

为了掌握求职者的专业水平,用人单位会通过笔试或者面试的方式进行专业知识测试来验证求职者是否具有担任某一工作所要的专业知识水平和相关的实际能力。用人单位在对求职者进行专业知识测评时会结合本单位的业务特点及招聘岗位需求,不同单位、不同岗位间所侧重的知识点差别比较大。学生毕业之际,有些专业课由于学完已经很长时间了,不可避免会帶来遗忘。如此种种原因,学生如果面试前没有提前做好准备,顺利通过专业知识测试会比较困难。另外,用人单位也很注重通过面试对学生其他素质进行综合测评,没出校门的学生,普遍缺乏社会经验,需要有针对性地对他们进行面试技巧的辅导。

高职院校教师为了帮助学生更好地就业,平时会通过各种渠道(如通过网络及往年参加面试学生的反馈信息)收集一些专业知识面试题,包括一些面试技巧等等。但是,这些资源的收集是通过教师自发手工完成的,没有得到一个很好的管理,也不能充分地提供给师生共享使用。

为了科学、有效地管理不同专业不同课程的大量面试题资源,并且充分利用校园网的优势,方便地提供给师生共享使用,很有必要开发一套基于Web环境的专业面试训练系统。该系统以江苏海事学院智慧化校园建设和学生的实际需求为背景,通过微服务、Web应用、MySQL数据库等技术,将收集到的专业面试题和面试技巧信息化、自动化。以计算机代替手工操作方式,已具备技术上的可行性和应用需求上的迫切性。

2系统的需求分析与设计

2.1需求分析

系统致力于如何提高高职信息类专业毕业生专业知识面试水平。面试技巧、面试流程、面试注意事项等主观内容,无妨提供系统进行训练,在平台中通过文档、视频等方式提供。平台主要目的是设计并完成一套基于Spring Cloud的高职学生专业面试训练系统,并完成软件技术、软件工程、移动互联网应用技术等专业面试题库的建设。诸如面试技巧、面试流程和注意事项等内容因人为因素较大,较难通过系统方式进行训练,平台通过文档、视频方式提供学生学习。该系统分为前台用户训练和后台资源管理维护二部分。前台用户可以是有需求的学生或者教师,用户登录之后可以在线进行专业的训练、观看面试技巧相关的视频和文档。用户可以通过选择岗位、公司,自动抽取面试题库中的相关试题进行练习。客观题可以由系统自动评分并给出提示,主观题待用户练习之后可以查阅参考答案。后台用户是管理员,管理员可以维护岗位、课程、面试技巧信息及公司面试试题的维护。图1显示了系统的用例图。

为了提供用户良好的用户体验,对系统的执行时间做出的以下的要求:用户正常的操作和在线查询、浏览等操作响应速度控制在3秒以内,在线面试试卷的生成相应时间控制在15秒以内,在线面试提交批改的相应时间控制在5秒以内。

2.2系统设计

微服务架构是将单一应用程序开发为一组小型服务,每个服务运行在单独的进程中,服务间通信采用轻量级通信机制。Spring cloud是微服务架构的集大成者,将优秀的微服务组件进行了整合。系统基于SpringCloud框架,构建微服务平台,将应用拆分为系统管理、基础数据管理、用户管理/登陆、面试题管理、面试资料管理多个微服务,每个微服务完成单一功能,服务之间采用轻量级的Rest接口实现通信。系统总体架构设计如图2所示。

系统采用SpringCloud框架实现了前后端分离,微服务实现后台业务处理,Vue框架实现前台数据展现。通过SpringCloud框架实现了微服务的发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

3系统实现

3.1微服务实现

系统中的每个微服务项目是相互独立的。每个微服务的开发通过Maven进行管理,Jar包的引入通过pop文件添加依赖实现,每个微服务的依赖并不完全一致,需要单独配置。每个微服务都需要的依赖是MyBatis和MySQL。系统将微服务的实现分为服务层、业务层、数据持久层和域对象层。微服务架构如图3所示。

服务层通过Spring Boot提供Rest接口,根据客户端请求,调用业务层提供相应的业务处理。业务层通过SDring框架进行业务组件的组装关联。数据持久层通过MyBatis框架实现系统数据库访问性能优化和与数据库交互的常用操作CRUD(Create Retrive Update Delete)。通过MyBatis框架实现了对象关系的映射,简化了Java语言对数据库的操作。域对象层是数据库表的映射,是ORM(Object Relation MappinE)产物。数据存储在MySQL数据库中,Redis存储缓存数据。系统通过applicaton.yml配置Eureka Server服务器地址、微服务在Eureka Server中的名称以及微服务的端口号等信息。

3.2前端实现

Vue是一个快速开发Web前端的工具包,可以简化前端开发,提高开发效率”。系统采用MVVM(Model-View-ViewModel)模式开发前端应用,开发框架如图4所示。

模型层(Model)封装了业务逻辑和数据,通过微服务来实现。数据模型层(viewModel)封装了业务逻辑和状态,通过Vue框架和JavaScript脚本实现。数据模型层和微服务之间的通信采用异步方式,数据模型层采用Axios请求微服务的数据,微服务返回JSON格式的数据。视图层(VicW)封装UI和UI逻辑,用户在屏幕上看的结构和外观都是由视图层实现的。

3.3系统测试

采用JMeter对系统进行了性能测试。JMeter是Apache组织开发的基于Java的压力测试工具,可用于Web应用测试m。通过模拟不同数量的虚拟用户并发访问系统,具体操作是设置模拟用户数(线程数)为200/300/500,每个用户发出5个请求(循环次数),以此为基础为每个模拟用户场景连续进行了五次测试。测试结果显示基于Spring Cloud的前后端分离架构能够满足用户需求。

4系统部署

Docker是一款开源容器,采用拟化技术,在一台主机可以搭建数百台甚至上千台的。为了提高系统的可维护性和快速部署,系统将微服务部署在Docker集群上,部署架构如图所示。

系统采用“一个容器一个服务”的方式,将每个微服务部署在单一的容器上。将微服务部署到容器上需要将其打包为镜像文件。系统通过Jenkins实现微服务的打包、镜像推送操作。Jenkins是一种开源的、基于web界面的持续集成工具。

5结束语

针对毕业生需要面试习题练习、面试指导等需求,设计并实现了面试题库系统。系统可进行灵活的应用,促进毕业生就业,提升专业建设水平。系统提供面试资源的管理与共享平台。用户登录之后可以查阅系统中保存的所有面试试题、面试技巧信息,还可以观看大量的面试就业相关视频。同时,可以通过选择岗位、试题类型,自动抽取面试题库中的相关试题进行练习,用户练习之后还可以查阅系统中保存的参考答案。后台管理员可以维護岗位、面试题目、面试技巧信息及面试资料的维护。

系统采用前后端分离的微服务架构,提升了开发效率,增加了代码的可维护性。系统采用Spring Cloud框架实现了后台的微服务,简化了服务配置、服务容错、负载均衡。采用Vue实现了前端的可视化展现,使得前端更易于扩展。

猜你喜欢
微服务智慧校园
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究