[login] 面试官好,我叫时圣凯,从事Java开发已经三年了,我上家的公司是**吉林省幻翼网络科技有限公司**这家公司主营业务是做游戏方面的还做一些外包的工作,在这段经历中,我主要负责了多个项目的不同阶段和任务。 我最近负责的项目是一个游戏项目,在中间我是一个主导的工作,主要负责玩家模块、排行榜模块、好友模块、工会模块等诸多游戏模块的开发,掌握Spring框架能够快速搭建业务,也处理过高并发的业务场景,能够熟练使用Redis,对SQL优化有一定的理解,能够处理JVM调优的工作,能够熟练掌握Nacos、RabbitMQ、MinIO等常用中间件的操作,了解一些前端框架比如Vue,以上就是我的自我介绍。 ### 排行榜功能(游戏内或网页等) 在业务初期需要手动把数据库中的一些需要排名的数据导入到redis中,我选择使用redis中的zset结构,因为他可以自动排序只需要拿角标就行了,当玩家数据更新的时候,需要去更新redis和数据库 ### 点赞功能(游戏社交页面) 这个功能就是玩家可以在自己的主页可以给别人点赞每天只能点一次,这个点赞也有个排行榜会给玩家进行展示,当玩家点赞的时候会将被点赞的玩家UUID作为redis的key存到一个set,set的key存的是点赞玩家的UUID,value存的是时间戳,当玩家下次点赞的时候就会判断他这个时间戳是不是大于24小时 ### 优惠卷功能(游戏内商城优惠卷) ### 视频分片上传+断点续传+视频转码功能(玩家视频分享社区) 当玩家选择了一个视频后,前端会将视频分片,每个分片大小是1M的小文件,并携带小文件的MD5值和分片索引向后端发起请求,我们会去判断这个小文件在MinIO服务器中是否已经存在,如果不存在就上传,如果存在就给前端直接返回成功。当全部文件上传完成后前端会给我们发送一个合并请求,我们收到这个请求后就会将MinIO中的视频使用多线程下载到本地,通过文件的分片索引进行合并,合并完成后需要获取合并后文件的MD5值并且与源文件的MD5值做对比,如果是就直接上传MinIO服务器并且删除所有小文件,还会判断一下文件头部的Content-Type是否为mp4格式,如果不是就会给MQ中发消息用于通知转码服务器对视频进行转码,因为转码消耗CPU资源比较高所以转码服务器是一个独立的服务器他只是对视频进行转码。 ### 热帖更新功能(分享社区帖子推送) 这个功能设计是两张表,一张是帖子表一张评论,帖子表主要就是主键id、帖子内容、访问量、发布时间等,评论表是主键i、帖子的id、上级评论的id、父级评论的id、点赞数量。在XXL-JOB中设置定时,每天凌晨1点,会根据访问量和总评论数再过滤7天以内的帖子筛选出20个,然后根据帖子评论总数与点赞总数,根据权重8:2的模式,计算出热度最高的10个帖子。然后将这10个帖子的主键id和内容放到redis作为缓存 [/login] 该部分仅登录用户可见 最后修改:2023 年 08 月 29 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏