仿b站微服务项目简历话术(开箱即用版)

●使用Nginx进行反向代理和动静分离,隐藏了后端服务的真实入口来增强安全性,缓存了静态资源,极大的提升了页面的响应速度
●使用Gateway固定请求入口,统一管理请求并路由转发,简化了与客户端通信并有利于负载均衡的拓展,降低了服务端压力
●实现了账号密码、邮箱、手机号的登录注册与重置密码,使用户可通过多种方式登录注册,提升了用户体验
●Spring Security+JWT实现统一鉴权与授权和单点登录,避免了每个服务都需要重复进行身份验证和权限检查的问题,只需登录一次就可
以访问所有相关的服务和应用,提高了用户体验
●双JWT实现无感刷新token,降低了调用api令牌被挟持造成巨大影响的风险同时又能让用户可以自动地在后台获取新的访问令
牌,无需重新登录或进行任何交互,解决了用户还在访问网站就需要重新验证的问题
●将长token放入了HttpOnly-Cookie,存储在无法被前端js脚本访问到的HttpOnly-Cookie降低了xss风险,并通过自定义请求头
实现拦截非自己网站源发起的请求,降低了CSRF风险
●使用OpenFeign+Nacos进行服务间的发现与远程调用,避免了相同功能重复编写接口的问题,并通过实现MultipartFile接口与将视频流装进
InputstreamResource类实现了服务间的文件流传输,解决传统feign调用难以传递文件流的问题
●实现了分片上传,避免了上传大文件时上传速度过慢的问题,提升了用户体验
●实现了断点续传,避免了上传文件中断需要从头再传的问题,提升了用户体验
●利用JAVE转MP4文件编码解决用户上传的视频无法在浏览器中播放的问题
●实现了用户上传视频后自动返回截取帧的图片给用户方便用户拖拉图片到实际封面中,增加了内容吸引力,同时通过给未提交封面的自动截取
封面防止了视频最终无封面的问题
●使用CompletetableFuture进行异步处理,提升了请求的响应速度,并通过固定异步任务执行顺序解决了转码时获取视频数据空指针问题
●使用Minio存储视频数据,避免了直接将文件流转为二进制存入数据库时新增和查询速度慢的问题,提升了响应速度
●使用Hutool转换文件流成Base64编码字符串、检查上传视频文件是否是MP4文件,轻松实现文件流到Base64字符串的转换而无需额外实现
转换逻辑,并降低了被上传扩展名为MP4的恶意文件导致服务器被攻击的风险
●使用可重用的ByteArrayInputstream解决检查文件后上传的视频流不可用的问题
●使用ConcurrentHashMap实现仿redis缓存存取值、过期值,增强了特殊不方便使用redis的情况下的缓存能力,并且由于缓存数据存储在jvm进程
内存中,极大的提升了缓存的存取速度
●使用继承JsonSerializer类的方式按规则自定义特定属性Json序列化值,提升了响应值序列化的灵活性和扩展性
●异步发送转码视频通知时通过Redis进行限流和轮询确认是否可以发消息到RocketMQ中,解决了同时转码多个视频导致服务器负担过大问题
●使用了分布式的XXL-JOB框架作为定时任务框架,使定时任务执行策略更丰富、执行过程可视化、错误更快被发现与定位
●XXL-JOB+Redis+布隆过滤器+RocketMq+OpenFeign实现自定义ElasticSearch与MySQL数据同步,增强了数据同步灵活性
●使用RocketMQ发送与消费视频动态、点赞、评论、私聊、转码消息,并封装点赞与取消点赞为一个实体类再顺序消费解决消息消费顺序异常问题
●ElasticSearch实现关键字补全、关键字高亮,有利于用户更准确查询到想查询的视频或用户
●ElasticSearch实现关键字搜索视频和用户与按条件重排序,解决了传统MySQL模糊查询不够精确的问题,并通过使用ElasticSerach提升了搜索响应速度
●通过实现Mybatis-plus的MetaObjectHandler接口方式实现自动填充值,减少了在业务中手动填充值的繁琐
●通过Mybatis-plus-join实现函数式联表查询,在处理简单多表查询时可以省去xml文件编写而直接在业务层解决
●通过logback-spring.xml读取配置文件的方式实现配置文件标注模块名即可输出全部服务的全部级别日志到同一目录下,统一
查看日志,加快了查看多服务日志解决问题的速度
●使用客户端仅与服务端建立连接的设计实现只需知道另一个客户端对应用户的用户id即可实时通信私聊
●集成讯飞星火大模型实现文生文、文生图,并通过二次封装的形式扩展只能生成ppt大纲的api实现输出完整的ppt大纲加详述
后续还会更新
项目地址https://labilibili.com,github地址https://github.com/aigcbilibili/aigcbilibili,演示地址https://labilibili.com/video/演示.mp4,如果大家觉得有帮助的话可以去github点个小星星
全部评论
有教程视频不,还有这个适合新手学吗
点赞 回复 分享
发布于 08-20 22:56 上海
佬,有简短一点的简历写法不?
点赞 回复 分享
发布于 09-09 17:37 湖南
博主~我问下项目里是如何使用Nginx进行反向代理和动静分离~因为我看好像没有Nginx 的配置文件诶
点赞 回复 分享
发布于 09-21 20:18 澳大利亚

相关推荐

11-03 10:01
门头沟学院 Java
杭州视言科技java实习(6.24)1.    岗位大概能实习多久?2.    讲讲你时长较长的那个项目,做了哪些板块?理一下大致的流程?3.    常规SpringBoot做的网站登录和微信小程序登录有什么区别4.    既然你提到了MD5加密,你们当时小程序那边有做加密么?5.    那我现在让你去把小程序这个项目的用户密码进行加密你怎么做?6.    微信小程序登录的接口是有一定的时效性的,隔一段时间就会失效,讲讲你token刷新的逻辑,你是怎么去处理的?7.    除了登录这样的业务,你还负责了哪些业务板块?8.    你登录那块的HttpClient其实有个问题,每次新调用的话,是做不到线程重复利用的,HttpClient是可以做线程池的,你当时是怎么实现的?9.    那假如我现在给你提个要求,我们现在是一个中间转发的服务器,我现在有大量的HttpClient的复用需求,我需要把外面请求的链接转发到后面去,我这时候需要你去做一个可复用的HttpClient的线程池,你会怎么实现?10.    你这个项目的时候还蛮长的,通过学校这个项目,你的收获是什么?11.    假如现在CRUD这样的业务板块重复性很高,现在要求专注写其他业务,你会通过什么样的方式去做?
查看11道真题和解析
点赞 评论 收藏
分享
世界上最难的事情是,长大以后的你还在坚持着实现小时候的梦想;而更难的事情则是,你真的实现了小时候的梦想。 10 年前的那个孩子怎么也不会想到,10 年后的他自己竟然真的成为了他梦想中的那个样子...... 启航 不知道为什么,从小就对计算机这么一个冰冷的东西情有独钟:我热衷于探索 Windows XP 控制面板中的每一个选项,与 Windows 搜索的吉祥物 Rover 做朋友,研究光驱和 3.5 软盘驱动器(是的,3.5 软盘!)的使用方式 —— 即使在那个计算机还没有普遍连上网的时代,我依然愿意探索计算机中的每一个角落。 当然,这可能和我喜欢玩计算机游戏有关,在那个网络并不发达,移动通信...
在摸鱼的香菇很想退休:感觉佬的经历是我曾经想过的 我最开始想学计算机是因为我想写游戏脚本 不过后来上大学走偏了去打竞赛了 不过算是找到另外一个爱好了 从结果来看感觉还是学历加非科班吃了亏 不过现在形式不好 读研也不一定能有更好的结果 还是祝愿佬拿到更多更好的offer吧 感觉你真的很优秀
点赞 评论 收藏
分享
15 57 评论
分享
牛客网
牛客企业服务