怎么根据前端代码实现自己的后端业务,实现不同接口
-
查阅文档:如果有完善的接口文档,可以直接查阅文档来了解后端所有接口的业务逻辑和功能。
-
阅读后端代码:通过阅读后端代码,特别是控制器(Controller)层和服务(Service)层的代码,可以了解后端所有接口的具体实现逻辑。
-
使用接口调试工具:可以使用接口调试工具(如Postman、Insomnia等)来发送请求,查看后端接口的响应结果,从而了解每个接口的功能和参数。
-
与后端开发人员沟通:与后端开发人员进行沟通,询问接口的详细信息和业务逻辑,可以更加直接地了解后端所有接口的功能和用法。
-
通过前端代码间接确定:前端代码通常会调用后端接口来获取数据或执行操作,因此可以通过分析前端代码,查看接口的调用情况和参数,间接了解后端所有接口的业务逻辑和功能。
Nginx
反向代理服务器:Nginx 可以作为反向代理服务器,接收客户端的请求,并将请求转发给后端的多个服务器。通过反向代理,Nginx 可以隐藏后端服务器的真实 IP 地址、提供负载均衡和高可用性,并对客户端和服务器之间的通信进行优化。
- 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
- 我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。
负载均衡器:Nginx 支持多种负载均衡算法(如轮询、加权轮询、IP 哈希、最少连接等),可以将请求分发到多个后端服务器上,以实现负载均衡,提高整个系统的性能和可伸缩性。
- 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
- 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
- 静态资源服务器:Nginx 可以快速、高效地提供静态资源(如 HTML、CSS、JavaScript、图片、视频等)的访问服务,同时支持 gzip 压缩和 HTTP 缓存等功能,提高资源传输的效率和网站加载速度。
-
反向代理缓存:Nginx 可以作为反向代理缓存服务器,缓存静态和动态内容,减轻后端服务器的负载,并加速客户端访问。它可以根据 HTTP 头信息、响应状态码和 URL 等条件进行灵活的缓存配置。
-
SSL/TLS 终端:Nginx 支持 SSL/TLS 协议,可以作为 SSL/TLS 终端,对客户端和服务器之间的通信进行安全加密和解密,保护数据的机密性和完整性。
登录
基于session登录
短信验证码登录
配置登录拦截器
第一个更新token,第二个判断是否登录。
向 Spring MVC 框架中添加拦截器,LoginInterceptor
是一个自定义的拦截器,用于拦截用户的登录请求。
-
excludePathPatterns
这一句是设置拦截器需要放行的请求路径列表。 -
"/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 的会话复制功能,也就是在集群环境下,将一个节点(服务器)的会话数据复制到其他节点上