"程序在线评测比赛考试系统的开发与云原生架构应用"

需积分: 0 0 下载量 123 浏览量 更新于2024-01-23 收藏 521KB PDF 举报
摘要: 2019年3月,我单位与某高校合作研发了一套名为《程序在线评测比赛考试系统》的教学平台。该系统以程序代码在线提交自动评测功能为核心,包含题库模块、评测机模块、实验作业模块、考试模块、比赛模块、抄袭判定模块、用户管理模块等,并且支持与教务平台的对接。在项目中,我担任系统架构师的角色,负责架构设计工作。本文以该系统为例,详细阐述了云原生架构的具体应用。该系统采用了Spring Cloud微服务框架,分为前端Web服务、平台保障服务和业务服务三部分。前端Web服务通过负载均衡和服务器集群的结合,实现了高并发的前台界面;平台保障服务以Eureka为中心,包括API网关、服务注册中心和监控平台等,构建了基础服务框架;业务服务被划分为多个微服务,并基于Docker容器,协同工作来实现具体的业务功能。最终,该系统成功上线,并获得了用户的一致好评。 正文: 笔者在一家专门为高校建设计算机专业智能教学一体化平台的单位工作。在过去的工作中,我参与了一些项目,比如《计算机组成原理仿真实验系统》等。2019年3月,我单位与一所大学合作研发了一套名为《程序在线评测比赛考试系统》的项目,以下简称为“OJ系统”。该系统是为了取代传统的编程考试方式而开发的。 OJ系统的核心功能是允许学生们在线提交程序代码,并且系统会自动对其进行评测。为了满足教学需要,OJ系统还提供了题库模块、评测机模块、实验作业模块、考试模块、比赛模块、抄袭判定模块和用户管理模块等功能,并且可以与教务平台进行对接,实现数据的互联互通。作为系统架构师,我的任务是设计整个系统的架构,并确保其性能、可靠性和可扩展性。 在设计OJ系统的架构时,我决定采用云原生架构来满足系统的需求。云原生架构是一种以云计算为基础的应用程序设计方法,旨在使应用程序能够充分利用云计算平台的优势,包括弹性伸缩、高可用性和灵活性。 具体而言,OJ系统使用了Spring Cloud微服务框架来构建。整个系统分为三个部分:前端Web服务、平台保障服务和业务服务。前端Web服务通过负载均衡和服务器集群的结合,实现了高并发的前台界面,确保用户的良好体验。平台保障服务以Eureka为中心,采用了API网关、服务注册中心和监控平台等组件,构建了一个基础的服务框架,为业务服务提供了统一的接入和管理方式。业务服务被划分为多个微服务,每个微服务都基于Docker容器,利用容器的隔离性实现了服务间的松耦合,并通过消息队列等机制实现了协同工作。 经过团队的共同努力,OJ系统最终顺利上线,并取得了非常好的效果。系统的性能表现出色,能够同时处理大量的用户请求,而且具有良好的可靠性和可扩展性。用户对系统的评价也非常高,他们认为OJ系统操作简便、功能丰富,并且能够有效地提升他们的编程能力。 总结起来,本文以《程序在线评测比赛考试系统》为例,详细介绍了云原生架构在项目中的应用。通过采用Spring Cloud微服务框架,我们成功地设计和实现了一个高性能、可靠性和可扩展性的教学平台。这个平台不仅简化了编程考试的流程,提高了教学效率,还为学生提供了一个良好的学习环境。在今后的工作中,我们将继续优化和完善OJ系统,进一步提升其功能和性能,以满足不断变化的教育需求。