仿b站微服务项目前后端完全运行环境与接口的文档
仿b站前后端分离微服务项目
实现了以下功能:
视频的上传、查看与上传时获取封面
视频的点赞、评论、可同时新增和删除多个收藏记录的收藏、多功能的弹幕
用户的个人信息查看编辑、用户之间的关注
用户的个人主页权限修改、查看、由个人主页权限动态决定的用户个人主页内容的获取
手机号、邮箱、图形验证码的多种方式登录
支持临时会话的服务器为代理的一对一实时私聊
基于讯飞星火的文生文、文生图、(全网首发)智能PPT
关注up动态视频、评论、点赞、私聊消息的生成与推送
基于es实现的视频和用户的聚合搜索、推荐视频
网关的路由和统一鉴权与授权
基于双token的七天内无感刷新token
防csrf、xss、抓包、恶意上传脚本攻击
统一处理异常和泛型封装响应体、自定义修改响应序列化值
简易的仿redis缓存读取与数据过期剔除实现
xxl-job+ redis+ rocketmq+ es+ 布隆过滤器的自定义es与mysql数据同步
slueth+zipkin的多服务间请求链路追踪
集中多服务日志到一个文件目录下与按需添加特定内容入日志
多服务的详细接口文档
前后端完全运行步骤:
1.运行中间件环境本机部署:
参考之前文章https://www.nowcoder.com/discuss/640368532730990592?sourceSSR=users
2.前后端项目本机启动
参考之前文章https://www.nowcoder.com/discuss/640865638906384384?sourceSSR=users
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
参数如下
{ "indexName": "video", "properties": { "video_id": "integer", "video_name": "text", "intro": "text", "cover":"text", "length":"text", "create_time":"date", "author_name":"text", "author_id":"integer", "url":"text", "play_count":"integer", "danmaku_count":"integer", "collect_count":"integer" } }
和post请求http://localhost:8201/search/createIndex
{ "indexName": "user", "properties": { "id": "integer", "nickname": "text", "intro": "text", "cover":"text", "fans_count":"integer", "video_count":"integer" } }
或将搜索服务中创建索引的接口createIndex上的@ApiIgnore注解去掉后浏览器输入localhost:8201/doc.html进入接口文档创建
package ljl.bilibili.search.controller; import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import ljl.bilibili.client.pojo.RecommendVideo; import ljl.bilibili.search.service.SearchService; import ljl.bilibili.search.vo.request.EsKeywordRequest; import ljl.bilibili.search.vo.response.UserKeyWordSearchResponse; import ljl.bilibili.search.handler.MysqlToEsHandler; import ljl.bilibili.search.vo.response.TotalCountSearchResponse; import ljl.bilibili.search.vo.response.VideoKeywordSearchResponse; import ljl.bilibili.search.vo.request.EsIndexRequest; import ljl.bilibili.util.Result; i
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
该专栏存放前后端分离仿b站微服务项目相关教程与简历话术