Java高级工程师+andriod工程师
主要负责后端服务设计与开发;从需求评审、需求分析、底层数据库设计到服务接口开发,进行整个流程的跟进
熟练运用以下框架:
后端:springMvc,springboot,redis,shiro,dubbo,netty,mybatis,hibernate,sqlserver,oracle,mysql,pg等
前端:vue,bootstrap,jquery,mui,layui等
前后分离设计,高并发高可用系统设计
一.教学客户端平台
教学客户端作为直接面向老师、学生、家长的平台,主要用于实现老师学生上课相关的功能。是老师、学生和家长之间交流的重要媒介。教学客户端功能涵盖:音视频相关、课件、课时、老师薪资、销售监课、教师排课等;在职期间主要负责其中的课时、老师薪资以及教师排课等功能开发以及维护。
此平台作为公司长期维护的平台,前期架构采用dubbo rpc框架,后期整个项目基于业务模块进行微服务拆分。技术点如下:
(1)系统前后端分离,后端负责业务逻辑实现,以及RESTful风格API暴露;
(2)项目基于dubbo分布式RPC框架搭建
(3)基于Elastic-job分布式定时任务实现课时异步处理;
(4)基于Elastic-job、Redis缓存实现小班课电话短信提醒等功能;
(5)基于Elasticsearch开源分布式RESTful风格的全文搜索引擎实现家长评价功能检索。
项目难点在于:课程状态的维护,因为课程状态的正确与否,直接关系到老师和学生的切身利益。原有架构设计采用Redis缓存+延迟处理的方式,但随着业务量的增长,加上网络环境的复杂,逐渐暴露出弊端;后期进行了架构升级,采用RocketMQ消息队列的方式,做到实时状态更新,提升了课程状态的准确性,也减少了其他依赖业务场景的复杂性。
二.备课微服务系统
此项目主要用于老师课前备课相关事宜,主要包括课程内容、作业以及课件三个部分的准备工作,以此来减少老师课中工作量,提升课堂效率。该项目采用Spring Cloud微服务架构进行设计开发,采用mysql作为底层数据库,Git&Maven进行项目管理和构建。技术点如下:
(1)采用Apollo作为项目配置中心,可实现配置的热加载;
(2)采用Spring Cloud Eureka来进行服务注册与发现;
(3)采用Zuul和Hystrix作为服务网关以及服务熔断和降级处理;
(4)采用Spring MVC经典设计,并采用RESTful架构风格进行接口暴露;
(5)采用RocketMQ消息中间件做服务解耦;
(6)采用@Async执行异步操作;
(7)采用xxl-job定时任务中间件做备课状态处理
角色 | 职位 |
负责人 | Java高级工程师 |
队员 | 前端工程师 |
队员 | 后端工程师 |