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

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

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/