在线视频项目学习笔记(六)—项目总结

一、面试的问题

1.自我介绍

我是谁,在哪上学,最近做了个什么项目

2.简单介绍项目

a).项目是一个什么类型项目? 应学项目 "社交类 学习类 APP项目" "社交类项目用户可以发布视频观看别人发布视频这样APP项目 类似"

b).项目整体架构:vue+springcloud;前台+后台;整体采用前后端分离架构;主要负责后端开发

c).项目中有哪些微服务功能模块:用户模块 视频模块 主要负责什么: 后端管理系统相关接口开发 以及前端app端视频接口的开发和调试

 3.详细项目架构

后端架构: maven 聚合形式进行开发  拆分服务: 短信 搜索 用户服务 视频  公共模块(业务工具类)
		
通信方式: http+restful  json
		
前端架构: 后台管理系统基于vue进行开发的,  前端APP开发 前端人员
接口文档生成工具:  YAPI 接口描述工具

4.Spring Cloud版本

SpringCloud: H版本  SR6
SpringBoot: 2.2.5.RELEASE
SpringCloud Alibaba: 2.2.1.RELEASE
		
SpringCloud 最新版本多少? 2020版本

5.Spring Cloud常见组件

服务注册中心 & 统一配置中心: nacos
服务间通信组件 :  Openfeign 底层默认集成Ribbon组件 实现负载均衡  2.RestTemplate(Spring)+ribbon(负载均衡客户端组件)
服务网关组件   : gateway
服务熔断 限流  : sentinel  流量防卫兵

6.项目的亮点

a).使用redis完成整个系统 喜欢 不喜欢  浏览数 点赞数 存储登录信息1.redis存储 2.set结构 3.二次组织 hash 结构

b).视频的存储使用的是阿里云oss存储服务,并且使用了其提供的截取视频中的某一帧作为截图。前台app使用的是阿里云的验证码服务发送的信息。

c).还可以讲讲项目的部署,部署到华为云,过程中需要开放端口。

d).网关过滤中增加权限验证(待学习),现阶段是使用在每次请求都判断一下是否登录了,登录更新redis中token的过期时间,否则就抛异常。

e).新增了一个注解:@RequiredToken

7.做项目过程中遇到了哪些问题

a).redisTemplate的序列化问题,默认的key和value都是按照对象序列化的,如果key需要存储字符串类型的话,会出现乱码,需要设置序列化方式。每次用到redisTemplate都需要单独设置序列化,那么考虑有没有一种方式直接将整个redisTemplate设置序列化。

redis存储优化过程:key上加标识-—标识设置为常量—放进common模块

redisTemplate.setKeySerializer(new StringRedisSerializer());

redisTemplate.setHashKeySerializer(stringKeySerializer);

b).cookie、session、token的技术选型问题。

c).在数据库中获取到的数据与前端要求返回数据不符合,解决方法:新创建该对象对应的VO对象(View Object)

d).部署到华为云的时候需要开放安全组端口,然后防火墙也需要开放相应端口。

8.项目中使用到的注解总结

@RequestParam

@PathVariable

@RequestBody

@JsonProperty():使用在属性上,用来给后端起别名展示到前端。

@JsonInclude 只展示不为空的数据(修饰类或者属性都可以)

9.项目中用到的工具类总结
// 1.属性复制
BeanUtils.copyProperties(admin,adminDTO);
// 2.自动生成四位随机数字(验证码)
RandomStringUtils.randomNumeric(4);
 //3.获取文件后缀 mp4 avi ....
 String ext = FilenameUtils.getExtension(originalFilename);

//4.还有个根据当前时间字符+几位随机数字字符作为oss中存储文件新名称

 

 
 
 
 

 

 

 

 

 

 

 

 

 



posted @ 2023-01-03 21:15  一直学习的程序小白  阅读(53)  评论(0编辑  收藏  举报