在廊坊师范本科计算机专业15年毕业,16年考取河北大学的计算机本科学士学位证,还差两门课考试,现在住在回龙观
项目介绍
分布式云平台系统是为高效考试分配试卷,为老师排课使用的,主要是两个模块,考评和教务,在我进了这个项目之前这个就已经做了半年,开发团队15人,服务器用了20台,
技术点
- 应用程序与数据库之间以mycat为中间件实现分库分表
- solr的使用,考评里的题库,相似题显示用到了题库,使用solr作为搜索应用服务器
- FastDfs,所有图片,音频等文件资料,都上传到fastdfs上,使用fastdfs作为分布式文件存储系统
- swagger:测试接口调用
- durid,查看sql 执行情况
- 消息队列:在教务选课,题库修改提后,传回给学生页面
- dubbo:远程调用,
- mq:使用mq作为消息中间件,实现消息的异步操作
- quzrtz:使用quzrtz作为定时任务的解决方案
- Redis:后端用Redis缓存(选课前将课程信息放到redis中),可以支持并发量一万,使用redis实现分布式缓存
框架
后端:应用层主要使用springmvc,服务层主要使用mybatis,应用层和服务层通过spring进行整合,并通过dubbo实现远程调用
前端:angular + 手机端ionic +pc端ng
常见代码优化方式
- 尽量重用对象,不要循环创建对象
- 循环拼接时,不用使用+,而是使用stringbuild
- 容器初始化的时候指定长度,防止因容易自动扩容影响性能
- ArrayList随机遍历快,LinkedList添加删除快
- 集合遍历尽量减少重复计算
- 遍历集合时可先用list.size赋值,再遍历
- 大数组复制使用System.arraycopy
- 尽量使用基本类型而不是包装类型
- 及时消除过期对象的引用,防止内存泄漏
- 尽量使用局部变量,减少变量的作用域
- 日志输出注意使用不同的级别
- 日志中参数输出拼接使用占位符