谈一谈“汕大学术通”这个项目(大创省级二等奖)

其实这个项目说来也巧,这并不是我一开始就想做的。

我记得那时候刚大二,那会儿就对深度学习很感兴趣,就去了老师的实验室。刚进组,赵老师就安排了我和一个研究生师兄一起做项目。刚开始的时候我是跟着黄鑫师兄一起做的,但是后来慢慢的,我们的研究方向就开始有点不一样了。毕竟他是研究生嘛,天天泡在实验室,而我是本科生,没那么多时间去干这个,所以我很快就跟不上他的进度了。当时我就感觉发不出论文了,就跟赵老师说我不太想干了,赵老师就说问我学没学过后端。我当时说学过 SSM 框架和 SpringBoot,做过一个电商支付的项目。他说如果我不想做深度学习的内容的话,我可以换一个项目,刚好他的大创团队少了一个人,问我要不要去加入他的那个团队,做后端的,很容易拿奖,因为那个项目上一届已经有人做了,这一届就创新一下就行了。然后我就进去了。

当我去真正和团队的队员一起做项目的时候,我才真正的开始接触到 Redis,MySQL,消息队列这些。这些我以前听过,但是没有真正的仔细研究过,就了解了个皮毛。那次是我第一次接触这些名词。那个项目不出意外的拿奖了。

后来我就仔细的思考了一下拿奖的原因,发现其实拿奖的内在逻辑并不在于你做了多少新的功能,而是优化。优化就是说你把某个功能进行改进。

比如说登录功能,之前你用 session,现在你用 token,那就是改进了。那下一届的用 Spring Security,那是不是对我这个项目又做了进一步改进,对吧?又或者说你之前的数据表没有用索引,现在用了索引来加快查询速度,那是不是又是一种改进,对吧?我记得当时我都没有做新功能,就是一通改进,改进了好多东西,然后答辩的时候一直对比之前做的和我们现在做的(没有对比就没有伤害嘛),我猜是因为这个对比才让我们拿奖的。

接下来我就讲讲我这个项目是如何进行改进的吧。

1. 使用 token 实现登录认证,解决了分布式 session 的问题。同时,使用双 token 解决了单 token过期时间短的问题。

谈谈 cookie 和 session 和 token 的使用-CSDN博客

2. 使用 MySQL 作为数据库来存储文献,采用 Redis 来缓存文献,提高了文献查询速度。把接口的响应速度从 256ms 优化成 47ms,QPS 从 3.9/sec 提高到 21.3/sec。

事实上这个项目一开始并没有用到Redis,一开始是用MySQL来存储文献的,MySQL是以数据表的形式来存文献的,表的字段有:文献id,标题,作者,摘要,关键词。你要查找文献,就必须要从数据库找。但是,假如开组会的时候,导师可能会拿其中几篇文献来做讲解,那么这有可能导致这几篇文献会被频繁的访问到,那这个时候,我们就把这几篇文献放到Redis这个键值对内存数据库中,Redis用哈希这种数据类型来缓存文献,哈希的key是文献id,value是文献的其他信息。我们用jmeter做过性能测试,发现一次查询的平均响应时间从直接查询数据库的256ms到现在加了Redis后,变成了47ms。每秒的查询次数从3.9次提升到了21.3次。

3.使用 kafka 消息队列对组会汇报的文章的修改做异步处理,从而提高响应速度。引入消息队列后,系统吞吐量提高了近 8 倍,实现了每秒处理近 5000 条消息的能力。

假如不引入消息队列,那研究生想要修改一篇文章,就要等数据库对这篇修改后的文章同步完成,研究生才可以去继续修改其他文章,那这样效率太低了。但是引入了消息队列之后,只需要将修改文章的请求放到消息队列里,前端先同步修改完成,研究生就可以转头继续修改下一篇文章。等后台数据库慢慢对修改后的文章进行同步就好了。不引入消息队列,系统吞吐量太慢。引入了消息队列之后,系统吞吐量提高了近8倍,现在可以每秒处理差不多5000条消息。

4. 使用覆盖索引优化了文献信息表,成功将单次检索文献的响应速度从 692.5ms 优化到 27.8ms。

如果不适用覆盖索引,那么一般是通过文献名字找到文献id,然后通过文献id找到文献的基本信息,这个过程需要回表。事实上研究生用的最多的就是通过文献名字找到文献摘要,我们把这两个字段变成覆盖索引就可以提升查询速度了。经过用Jmeter进行性能测试,我们发现在没用覆盖索引的时候,查询响应时间是274.5ms;用了覆盖索引之后,查询响应时间是67.8ms。

  • 33
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目名称:智能健康管理系统的设计与实现 项目背景: 现代人工作压力大,生活节奏快,往往忽视了自己的健康问题,导致身体出现各种疾病。因此,开发一款智能健康管理系统,帮助人们随时随地掌握自己的健康状况,预防疾病发生,保持身体健康,具有重要的社会意义和经济效益。 项目目标: 1.设计开发一款基于云计算、物联网和人工智能技术的智能健康管理系统。 2.实现用户身体数据的自动采集和监测,包括身高、体重、血压、心率、血糖等多项指标。 3.过人工智能技术,对用户的身体数据进行分析和诊断,提供个性化的健康建议和预防措施。 4.为用户提供健康档案管理功能,便于用户随时查看自己的健康状况和历史记录。 5.开发智能健康咨询机器人,为用户提供24小时在线健康咨询服务。 6.为医生提供数据分析和诊断建议,辅助医生提高诊断准确率和治疗效果。 项目计划: 1.项目启动阶段(1个月) 确定项目目标和需求,制定项目计划和进度,组建项目团队。 2.需求分析和设计阶段(2个月) 进行用户需求分析和系统设计,包括数据库设计、界面设计和系统架构设计。 3.系统开发和测试阶段(6个月) 进行系统开发和测试,包括前端和后端开发、数据库开发和集成测试。 4.系统集成和部署阶段(1个月) 进行系统集成和部署,包括系统测试、数据迁移和用户培训。 5.系统运营和维护阶段(长期) 进行系统运营和维护,包括系统更新、数据备份和故障处理。 项目预算: 1.人员费用(团队成员5人):200,000元 2.硬件设备费用:50,000元 3.软件开发费用:300,000元 4.其他费用:50,000元 总预算:600,000元 项目效益: 1.提高人们的健康意识和健康管理能力,降低疾病发生率和医疗费用。 2.为医生提供数据分析和诊断建议,提高医疗质量和效率。 3.开发智能健康咨询机器人,为用户提供24小时在线健康咨询服务,提高用户满意度。 4.推动物联网和人工智能技术在健康领域的应用,促进科技创新和产业发展。 项目风险: 1.技术风险:开发过程中可能会遇到技术难题,需要团队成员具备一定的技术能力和解决问题的能力。 2.市场风险:市场需求不确定,用户接受度和使用率可能不高,需要进行市场调研和推广。 3.安全风险:系统中涉及用户的个人隐私和健康数据,需要加强系统安全和数据保护措施。 结论: 本项目旨在开发一款基于云计算、物联网和人工智能技术的智能健康管理系统,为人们提供便捷、个性化的健康管理服务,提高人们的健康意识和健康管理能力,促进科技创新和产业发展。虽然在开发过程中可能会遇到一些风险和挑战,但我们相信过团队努力和市场推广,一定能够实现项目目标,并为社会带来实际的经济效益和社会效益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值