仿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大纲加详述

后续还会更新

项目地址LABiliBili,github地址GitHub - aigcbilibili/aigcbilibili: 仿bilibili前后端实现,演示地址https://labilibili.com/video/演示.mp4,如果大家觉得有帮助的话可以去github点个小星星♪(・ω・)ノ


0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
骆驼菜菜
作者分享
宣传下自己的仿B站前后端分离微服务开源项目
6
好久没冒泡过了,宣传下开源项目 仿B站前后端分离微服务项目 实现了以下功能: 视频的上传、查看、点赞、评论、收藏、弹幕(有分片上传与断点续传实现) 用户的个人信息查看编辑、关注 用户个人主页权限查看修改、个人主页内容获取 图形码、手机号、邮箱登录注册 一对一实时私聊 大模型文生文、文生图、智能PPT 关注UP动态、评论点赞私聊消息的生成与推送 视频和用户的聚合搜索、关键字补全、关键字高亮 项目亮点: 技术栈相当丰富且贴近企业需求:使用了当下企业开发最常用的可以快速开发单体应用的SpringBoot,保证了下限的基础上引用了SpringCloud系列组件搭建微服务提高上限,并使用了流行中间件Redis、RocketMQ、ElasticSearch,完整覆盖所有公司对Java应届生的要求,技术栈达到要求则过筛选率大大提高,且按需引入技术如实时连接Websocket、转码Jave等,体现出相对于大部分Java人更强的解决需求能力,进一步提供过筛选率,同时更广的技术栈代表可供面试官提问的点更多,也是可以自己提前准备主动引导面试官的点更多 技术亮点多:一份好的简历需要有足够多能和面试官细聊的地方,本项目亮点相当多,像分片上传、断点续传、数据同步流程、一对一实时私聊、集成大模型功能及全网首发的给出主题生成ppt所有文案实现等都足够和面试官展示军火相当久且可以延伸出足够多八股,将一场面试节奏完全掌握在自己手中 有详细完整最快落地的教程:从部署环境到前后端运行到接口调通有相当完整详细的教程,完全无需会一点前端知识,不用配置特定环境或特定包目录运行前端和解决任何前端相关bug即可启动前端,且运行所需包都可直接从作者文件床中获取无需在官网中找省去麻烦从而最快本机跑通项目功能,并附带项目技术栈使用讲解更快理解项目 有配套简历话术:配合现成简历话术极快改进简历,省去大量的反复修改简历时间 有java基础的情况下按照教程操作最快不到一天就能把仿b站项目本机运行起来 项目地址:https://labilibili.com,github地址https://github.com/aigcbilibili/aigcbilibili,已有240star,欢迎访问项目,给GitHub点个小星星就更好啦
12
原创仿b站前后端分离微服务开源项目
7
仿b站项目最终版 实现了以下功能: 视频的上传、查看、点赞、评论、收藏、弹幕(有分片上传与断点续传实现) 用户的个人信息查看编辑、关注 用户个人主页权限查看修改、个人主页内容获取 图形码、手机号、邮箱登录注册 一对一实时私聊 文生文、文生图、智能PPT 关注UP动态、评论点赞私聊消息的生成与推送 视频和用户的聚合搜索、关键字补全、关键字高亮1 项目亮点 重复度极低,项目需求都是作者一比一复刻分析b站功能决定的,在企业招聘需求减少招聘要求提高的当下意味着在简历筛选会得到远高于常人的被感兴趣程度(绝大部分Java人都是做的黑马尚硅谷项目或其余较流行项目,项目上的千篇一律导致hr及面试官对简历感兴趣程度较低,相对不愿意细看简历,且由于这些项目网上资料过多过详细容易被面试官判定为难度较小的项目而不能确定Java人是否高水平,以及对使用这些项目的人简历要求提高甚至见到简历写这些项目就直接丢弃) 技术栈相当丰富且贴近企业需求:使用了当下企业开发最常用的可以快速开发单体应用的SpringBoot,保证了下限的基础上引用了SpringCloud系列组件搭建微服务提高上限,并使用了流行中间件Redis、RocketMQ、ElasticSearch,完整覆盖所有公司对Java应届生的要求,技术栈达到要求则过筛选率大大提高,且按需引入技术如实时连接Websocket、转码Jave等,体现出相对于大部分Java人更强的解决需求能力,进一步提供过筛选率,同时更广的技术栈代表可供面试官提问的点更多,也是可以自己提前准备主动引导面试官的点更多 技术亮点多:一份好的简历需要有足够多能和面试官细聊的地方,本项目亮点相当多,像分片上传、断点续传、数据同步流程、一对一实时私聊、集成大模型功能及全网首发的给出主题生成ppt所有文案实现等都足够和面试官展示军火相当久且可以延伸出足够多八股,将一场面试节奏完全掌握在自己手中 有详细完整最快落地的教程:从部署环境到前后端运行到接口调通有相当完整详细的教程,且运行所需包都可直接从作者文件床中获取无需在官网中找省去麻烦从而最快本机跑通项目功能,并附带项目技术栈使用讲解更快理解项目 有配套简历话术:配合现成简历话术极快改进简历,省去大量的反复修改简历时间 技术栈 springboot:快速开发Java应用程序 security:具备强大的鉴权授权 nacos:服务注册与发现 openfeign:远程调用服务 gateway:请求入口与路由网关 redis:跨服务缓存 elasticsearch:更快的查询与更高的查询匹配度 rocketmq:异步处理队列 minio:文件对象存储 mybatis-plus:便捷执行单表增删改查 mybatis-plus-join:业务层多表查询 druid:阿里数据库连接池 jwt:token实现形式 swagger:接口文档 gson:谷歌序列化转换 hutool:集成众多工具类省去手动实现工具类 websocket:实时长连接 讯飞星火api:集成大模型功能 jave:视频操作,转码、压缩、截图、去水印等 xxl-job:分布式可视化定时任务 zipkin:请求链路追踪信息可视化ui slueth:发送请求链路追踪信息 相关教程 本机运行环境部署https://articles.zsxq.com/id_hvd3tkx3pq6v.html 前后端运行https://articles.zsxq.com/id_o9k66ma79cu0.html 前后端接口调通https://articles.zsxq.com/id_zx28jqj1euco.html 需求分析与需求实现思路https://articles.zsxq.com/id_rft27b8wfv2i.html 简历写法https://articles.zsxq.com/id_0nnixwez6516.html redis、mybatis-plus、es、rocketmq使用https://articles.zsxq.com/id_8mx58r4c7dr2.html websocket、spring security、swagger knife4j、openfeign的使用https://articles.zsxq.com/id_8coisfuz2ts5.html minio、xxl-job、jave、mybatis-plus-join的使用https://articles.zsxq.com/id_1c7w2j0a5gld.html zipkin sleuth、completableFuture、手机号邮箱号登录https://articles.zsxq.com/id_0pvpjum0ms82.html 项目地址 线上地址:https://labilibili.com,演示地址:https://labilibili.com/video/演示.mp4,github地址https://github.com/aigcbilibili/aigcbilibili ,欢迎访问项目,给GitHub点个小星星就更好啦
8
仿b站微服务项目前后端完全运行环境与接口的文档
5
下载 APP