仿b站微服务项目前后端完全运行环境与接口的文档
仿b站前后端分离微服务项目
实现了以下功能:
视频的上传、查看与上传时获取封面
视频的点赞、评论、可同时新增和删除多个收藏记录的收藏、多功能的弹幕
用户的个人信息查看编辑、用户之间的关注
用户的个人主页权限修改、查看、由个人主页权限动态决定的用户个人主页内容的获取
手机号、邮箱、图形验证码的多种方式登录
支持临时会话的服务器为代理的一对一实时私聊
基于讯飞星火的文生文、文生图、(全网首发)智能PPT
关注up动态视频、评论、点赞、私聊消息的生成与推送
基于es实现的视频和用户的聚合搜索、推荐视频
网关的路由和统一鉴权与授权
基于双token的七天内无感刷新token
防csrf、xss、抓包、恶意上传脚本攻击
统一处理异常和泛型封装响应体、自定义修改响应序列化值
简易的仿redis缓存读取与数据过期剔除实现
xxl-job+ redis+ rocketmq+ es+ 布隆过滤器的自定义es与mysql数据同步
slueth+zipkin的多服务间请求链路追踪
集中多服务日志到一个文件目录下与按需添加特定内容入日志
多服务的详细接口文档
前后端完全运行步骤:
1.运行中间件环境本机部署:
参考之前星球文章
2.前后端项目本机启动
参考之前星球文章
3.拉取项目后必要创建工作
修改配置
将连接MySQL的密码用户名密码改成实际密码,Redis默认连接无用户名密码,若未对Redis做出修改则不需修改springboot配置,es同Redis,Rocketmq同理,minio默认用户名密码minioadmin,未做minio修改则无需修改配置
创建MySQL数据库
执行github上的sql脚本(注意最好在远程连接软件如navicat、dbeaver上执行,直接在idea中连接MySQL作者并未测试且有人直接idea连接MySQL执行该脚本未成功)
创建ElasticSearch索引
启动搜索服务后在Postman中发送请求创建视频和用户的es索引
post请求:http://localhost:8201/search/createIndex
和post请求http://localhost:8201/search/createIndex
或将搜索服务中创建索引的接口createIndex上的@ApiIgnore注解去掉后浏览器输入localhost:8201/doc.html进入接口文档创建
minio桶创建
快速方法:在minio控制台中创建,按上面教程启动minio并进入控制台后如图创建桶



然后点击video桶修改桶权限使minio运行直接访问路径



相同步骤创建并修改video-cover、user-cover桶
启动环境、启动前端后启动六个后端服务
注册新账号并登录





接下来点击右上角头像处进入个人中心上传视频

上传视频后会自动截取封面,若不做修改则用该封面作为默认封面
添加视频标题和简介后上传视频

上传完成后会检测,若视频编码可以在浏览器中播放则不会转码,否则会在notice服务中进行转码再重新上传


不同于传统项目,本项目需要的核心数据是文件流,不能直接在数据库中插入一系列数据,因此需要从上传开始将核心视频数据以及上传过程中会插入的其他数据导入数据库。其余功能本机演示明天补全
项目地址https://labilibili.com,github地址https://github.com/aigcbilibili/aigcbilibili
演示地址https://labilibili.com/video/演示.mp4,如果大家觉得有帮助的话可以去github点个小星星♪(・ω・)ノ
