当前位置: 首页 > news >正文

苍穹外卖项目笔记(2)

1 Nginx 反向代理和负载均衡

1.1 概念

【Tips】可以看到前端请求地址和后端接口地址并不匹配,这里涉及到 nginx 反向代理 ,就是将前端发送的动态请求由 nginx 转发到后端服务器

使用 nginx 作反向代理的好处: 

  • 提高访问速度(在请求 nginx 这一层可以做缓存)
  • 进行负载均衡(负载均衡:把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器)
  • 保证后端服务的安全

1.2 配置

1.2.1 nginx 反向代理的配置方式

【Tips】通过proxy_pass指令,将我们匹配到的前端请求(/api/) 转发到我们指定的后端的这个接口地址(http://localhost:8080/admin/)

1.2.2 nginx 负载均衡的配置

【Tips】将匹配到的请求平均的转发到 webservers 组里的后端服务器中

1.2.3 nginx 负载均衡策略

2 完善登录功能 

当前登录存在问题:员工表中的密码是明文存储,安全性太低

解决办法:采用MD5加密方式对明文密码加密后存储,提高安全性

操作步骤:

① 修改数据库中明文密码,改为MD5加密后的密文:

123456  ----->  e10adc3949ba59abbe56e057f20f883e

② 修改Java代码,前端提交的密码进行MD5码加密后再跟数据库中密码比对

        //密码比对// TODO 后期需要进行md5加密,然后再进行比对// 对前端传过来的明文密码进行 md5 加密处理password = DigestUtils.md5DigestAsHex(password.getBytes());if (!password.equals(employee.getPassword())) {//密码错误throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);}if (employee.getStatus() == StatusConstant.DISABLE) {//账号被锁定throw new AccountLockedException(MessageConstant.ACCOUNT_LOCKED);}

3  导入接口文档

        前后端分离开发方式要求开发之前先将接口定义好,然后前后端开发人员才能并行开发。所以我们需要将项目接口导入到接口管理平台,为后续业务开发做准备。

3.1 确认前后端分离开发流程

【注】接口确定了前后端交互的过程,包括请求的地址、方式,前端提交给后端的数据格式以及后端响应给前端的数据格式等

3.2 操作步骤

        将项目接口导入YApi(接口管理平台)

步骤1 登录YApi

步骤2  新建项目并导入文件

 

步骤3 查看接口

        选择接口项,即可查看接口分类即功能,同理,导入用户端的接口文档 

4 Swagger

4.1 介绍

能够帮助后端生成接口文档,并可以进行在线接口测试

4.2 使用方式

① 导入 knife4j 的 maven 坐标

② 在配置类中加入 knife4j 相关配置

③ 设置静态资源映射,否则接口文档页面无法访问

验证:登录localhost:8080/doc.html,可以查看到扫描到的类的方法以及添加的文字描述等

 点击进入左侧方法,即可调试:

【注】Swagger 和 YApi 的区别

1、YApi 是设计阶段使用的工具,用于管理和维护接口 

2、Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

4.3 常用注解

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

@Data
@ApiModel(description = "员工登录时传递的数据模型")
public class EmployeeLoginDTO implements Serializable {@ApiModelProperty("用户名")private String username;@ApiModelProperty("密码")private String password;}
@Api(tags = "员工相关接口")
public class EmployeeController {......
}
@ApiOperation(value = "员工登录")
public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {......
}

http://www.lryc.cn/news/234851.html

相关文章:

  • hive更改表结构的时候报错
  • redis运维(六)redis-cli命令
  • JDK1.8 新特性(二)【Stream 流】
  • 阿里云CentOS主机开启ipv6
  • 【Git】第五篇:基本操作(添加文件)
  • vue通过span-method合并列之后,合并列显示在中间位置,根据鼠标滑动跟随展示
  • gRPC 四模式之 一元RPC模式
  • Java GUI实现贪吃蛇游戏
  • Vue3 使用教程
  • 卡方检验-python代码
  • 电磁场与电磁波part4--时变电磁场
  • 电压跟随器
  • 元宇宙3D云展厅应用到汽车销售的方案及特点
  • SourceTree修改Git密码
  • java中的深度复制和浅复制的BUG
  • 计算机毕业设计 基于SpringBoot的车辆网位置信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 集软件库、论坛、社区、工具箱、积分商城、会员体系、在线商城一体的后台系统+HBuilderX 前端软件社区
  • 【解决Qt编译报错:-1: warning: **.so, not found(try using -rpath or -rpath-link)】
  • 关于数据mysql ->maxwell->kafka的数据传输
  • 【linux】查看CPU的使用率
  • 【系统稳定性】1.6 黑屏(三)
  • 《使用EasyExcel在Excel中增加序号列的方法》
  • 【Linux】安全审计-audit
  • Linux 之查看标准错误码工具
  • Git企业开发级讲解(五)
  • 目录自动清洗
  • c++实现Any类,让一个类型指向其他任意类型
  • os.path.join函数用法
  • vscode Prettier配置
  • MLC-LLM 支持RWKV-5推理以及对RWKV-5的一些思考