黑马点评项目总结及个人优化

2024-05-14 14:44

本文主要是介绍黑马点评项目总结及个人优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

怎么根据前端代码实现自己的后端业务,实现不同接口

  1. 查阅文档:如果有完善的接口文档,可以直接查阅文档来了解后端所有接口的业务逻辑和功能。

  2. 阅读后端代码:通过阅读后端代码,特别是控制器(Controller)层和服务(Service)层的代码,可以了解后端所有接口的具体实现逻辑。

  3. 使用接口调试工具:可以使用接口调试工具(如Postman、Insomnia等)来发送请求,查看后端接口的响应结果,从而了解每个接口的功能和参数。

  4. 与后端开发人员沟通:与后端开发人员进行沟通,询问接口的详细信息和业务逻辑,可以更加直接地了解后端所有接口的功能和用法。

  5. 通过前端代码间接确定:前端代码通常会调用后端接口来获取数据或执行操作,因此可以通过分析前端代码,查看接口的调用情况和参数,间接了解后端所有接口的业务逻辑和功能。

Nginx

反向代理服务器:Nginx 可以作为反向代理服务器,接收客户端的请求,并将请求转发给后端的多个服务器。通过反向代理,Nginx 可以隐藏后端服务器的真实 IP 地址、提供负载均衡和高可用性,并对客户端和服务器之间的通信进行优化。

  • 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
  • 我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。

负载均衡器:Nginx 支持多种负载均衡算法(如轮询、加权轮询、IP 哈希、最少连接等),可以将请求分发到多个后端服务器上,以实现负载均衡,提高整个系统的性能和可伸缩性。

  • 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
  • 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
  1. 静态资源服务器:Nginx 可以快速、高效地提供静态资源(如 HTML、CSS、JavaScript、图片、视频等)的访问服务,同时支持 gzip 压缩和 HTTP 缓存等功能,提高资源传输的效率和网站加载速度。
  2. 反向代理缓存:Nginx 可以作为反向代理缓存服务器,缓存静态和动态内容,减轻后端服务器的负载,并加速客户端访问。它可以根据 HTTP 头信息、响应状态码和 URL 等条件进行灵活的缓存配置。

  3. SSL/TLS 终端:Nginx 支持 SSL/TLS 协议,可以作为 SSL/TLS 终端,对客户端和服务器之间的通信进行安全加密和解密,保护数据的机密性和完整性。

登录

基于session登录

短信验证码登录

配置登录拦截器

第一个更新token,第二个判断是否登录。

向 Spring MVC 框架中添加拦截器,LoginInterceptor 是一个自定义的拦截器,用于拦截用户的登录请求。

  1. excludePathPatterns这一句是设置拦截器需要放行的请求路径列表。

  2. "/user/code", "/user/login", "/blog/hot", "/shop/**", "/shop-type/**", "/upload/**", "/voucher/**": 这是放行请求的路径列表。这些路径表示用户在访问这些请求时,不会被拦截器拦截。

封装UserDTO,返回给前端的Entity数据使用BeanUtil工具类转成DTO

@Data 是一个注解,通常与 Lombok 库一起使用,它可以自动生成类的 getter、setter、toString()equals()hashCode() 方法,从而简化了 Java 类的编写。DTO 类用于在不同的层之间传输数据。

Session集群共享问题

什么是Session集群共享问题

当一个网站或应用部署在多个服务器上时,用户的会话数据(比如登录状态、购物车内容等)需要在这些服务器之间共享,以保证用户在不同服务器上的操作是一致的。然而,如果不采取特殊的措施,这些服务器之间并不会自动共享会话数据,而是会在各自的服务器上保存各自的会话数据。这就导致了会话数据的不一致性,造成了用户体验的问题,比如用户在一个服务器上登录了,但是在另一个服务器上却看不到登录状态。

如何解决Session集群共享问题

方案一:Session拷贝(不推荐),Tomcat提供了Session拷贝功能,通过配置Tomcat可以实现Session的拷贝,但是这会增加服务器的额外内存开销,同时会带来数据一致性问题。

Tomcat 是一个流行的开源的 Java 服务器,可以将 Java Web 应用程序部署到服务器上并提供服务。使用 Tomcat 的会话复制功能,也就是在集群环境下,将一个节点(服务器)的会话数据复制到其他节点上

这篇关于黑马点评项目总结及个人优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989032

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的