个人项目小结

个人项目小结

技术方案 前端 flutter + android + 环信SDK + redux + shared_preferences + connectivity + iconfont + webview + sqflite 后端 Spring Boot + SpringMVC + Mybatis + MybatisPlus + Dubbo Elasticsearch geo 实现地理位置查询 MongoDB 实现海量数据的存储 Redis 数据的缓存 Spark + MLlib 实现智能推荐 第三方服务 环信即时通讯 第三方服务 阿里云 OSS 、 短信服务 第三方服务 虹软开放平台 技术架构  

个人项目小结

 

 

 


技术解决方案 使用Elasticsearch geo实现附近的人的解决方案 使用Spark + Mllib实现智能推荐的解决方案 使用MongoDB进行海量数据的存储的解决方案 使用采用分布式文件系统存储小视频数据的解决方案 使用虹软开放平台进行人脸识别的解决方案 技术亮点 采用Elasticsearch geo实现地理位置查询 采用RocketMQ作为消息服务中间件 采用MongoDB进行海量数据的存储 采用Spark + Mllib实现智能推荐 采用环信服务实现即时通讯 采用分布式文件系统存储小视频数据 采用Apache Dobbo作为微服务架构技术 采用SpringBoot + Mybatis实现系统主架构 采用Redis集群实现缓存的高可用 主要功能 注册、登录 用户通过手机验证码进行登录,如果是第一次登录则需要完善个人信息,在上传图片时,需要对上传的图片做人像的校验,防止用户上传非人像的图片作为头像。流程完成后,则登录成功。 交友 交友是探花项目的核心功能之一,用户可以查看好友,添加好友,搜索好友等操作。 首页 主要功能有今日佳人推荐最近访客

·        - - 按照缘分值进行匹配,将缘分值最高的用户展现出来

·        按照缘分值进行推荐,由后台的推荐系统计算得出,展现出来

·        显示最近来看的用户

探花 说明:左划喜欢,右划不喜欢,每天限量不超过100个,开通会员可增加限额。双方互相喜欢则配对成功 数据来源推荐系统计算后的结果。 搜附近 根据用户当前所在的位置进行查询,并且在10km的范围内进行查询,可以通过筛选按钮进行条件筛选。 桃花传音 功能类似QQ中的漂流瓶,用户可以发送和接收语音消息,陌生人就会接收到消息 测灵魂 测试题用于对用户进行分类,每次提交答案后更新用户属性 测试题在后台进行维护 测试题测试完后产生结果页可以进行分享 测试题为顺序回答,回答完初级题解锁下一级问题 点击锁定问题 显示提示 请先回答上一级问题 圈子 推荐频道为根据问卷及喜好推荐相似用户动态 显示内容为用户头像、用户昵称、用户性别、用户年龄、用户标签和用户发布动态 图片最多不超过6张或发布一个小视频 动态下方显示发布时间距离当时时间,例如10分钟前、3小时前、2天前,显示时间进行取整 动态下方显示距离为发布动态地与本地距离 显示用户浏览量 显示点赞数、评论数 转发数 消息 消息包含通知类的消息和好友消息。 小视频 用户可以上传小视频,也可以查看小视频列表,并且可以进行点赞操作。 我的 显示关注数、喜欢数、粉丝数、我的动态等信息。 开发方式 探花交友项目采用前后端分离的方式开发,就是前端由前端团队负责开发,后端负责接口的开发 好处 扬长避短,每个团队做自己擅长的事情 - 前后端并行开发,需要事先约定好接口地址以及各种参数、响应数据结构等对于接口的定义我们采用YApi进行管理,YApi是一个开源的接口定义、管理、提供mock数据的管理平台 多线程技术 好友时间线表通过异步执行,使用了spring@Async注解实现异步执行,底层就是通过启动独立线程来执行,从而可以异步执行通过返回的CompletableFuture来判断是否执行成功以及是否存在异常。同时需要在启动类中添加@EnableAsync 开启异步的支持。 reids存储 用户的验证码,五分钟有效,登陆成功直接进行删除 get请求重复逻辑进行缓存 每次符合拦截的请求会先查缓存是否 有该数据,有的话直接返回,没的话则查数据库,将数据库查到的数据存入 缓存并响应给前端 通过ResponseBodyAdvice进行对响应的拦截,可以将数据缓存到Redis 不能对于所有的请求都一刀切,所以需要创建@Cache注解进行标记,只有标记的Controller才进行缓存处理。 缓存的处理中,仅针对GET请求处理,其他的请求均不做处理 点赞数,是否点赞采用hash存储这样的好处就在于一条动态的点赞、喜欢等数据都会集中的存储到一起,从而减少了Redis中数据条数。 用户的关注列表,保存到redis中,方便后续的查询 请求到的Token 验证码登录功能 采用技术单点登录 以前实现的登录和注册是在同一个tomcat内部完成,我们现在的系统架构是每一个系统都是由一个团队进行维护,每个系统都是单独部署运行一个单独的tomcat,所以,不能将用户的登录信息保存到session中(多个tomcatsession是不能共享的),所以我们需要一个单独的系统来维护用户的登录信息。

·        客户端需要通过SSO系统才能获取到token

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppjzd.html