自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 MySQL 的执行计划

2. select_type:查询的类型,常见的有 SIMPLE、PRIMARY、SUBQUERY、UNION、DERIVED、UNION RESULT。1. 通过 key 字段查看使用索引的情况,如果 key = null 表示没有使用索引,考虑增加索引或者使用已有索引来查询。1. id:select 语句的序号,id 相同时按顺序执行,id 不同时,id 值越大的,优先级越高,越先执行。6. rows:估算的所需读取的记录或行数,越小越好。5. key:查询时实际用到的索引。

2024-05-14 11:08:22 335

原创 Redis 持久化

介绍了 Redis 持久化的三种方案,分别是 RDB 快照,AOF 日志文件以及两种方式结合的第三种方式——混合持久化。还记录了详细的配置信息,各个方式的底层原理和优缺点以及不同方式的对比,最新版的 Redis 采用的是混合持久化,结合了 RDB 和 AOF 的优点

2024-05-05 22:54:03 830

原创 服务保护和分布式事务

介绍微服务架构风格的系统可以会遇到的雪崩问题,对为什么会产生雪崩进行说明,并分析解决雪崩问题的思路。提供了三种服务保护的方案以解决雪崩问题,分别是请求限流、线程隔离和服务熔断。这些服务保护技术的实现都可以通过 Sentinel 来完成,Sentinel 是一个流量控制组件,需要在项目中整合 Sentinel 即可快速开始使用,简单方便好上手。

2024-02-15 23:53:17 133

原创 Nacos 的配置管理和配置热更新

Nacos 除了作为注册中心之外还可以作为配置管理中心,在分布式场景下让多个微服务共享配置,避免了多个微服务的重复配置

2024-02-14 22:42:53 677

原创 Spring Cloud Gateway 网关路由

介绍了网关的路由断言、路由过滤器以及网关发起请求时的处理流程(过滤器链)等。使用网关实现了用户统一的登录校验,解决网关传递数据给下游微服务和微服务之间的数据传递的问题。

2024-02-13 00:11:42 2657 1

原创 微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用

微服务学习笔记,记录微服务的概念、将单体项目拆分为微服务项目的原则和思路;拆分项目之后遇到的问题——不同服务之间的调用,通过远程调用解决,搭建 Nacos 实现注册中心,介绍注册中心的三个角色:注册中心(记录服务注册列表)、服务提供者(向注册中心登记服务)和服务调用者(在注册中心获取服务实例列表),最后分析注册中心服务治理的结果。此外,介绍更简单地使用 HTTP 发送请求进行远程调用的客户端 OpenFeign 及详细的使用步

2024-02-06 23:14:49 3158

原创 LeAPI 后端接口开发 - 发布、下线接口

LeAPI 项目后端接口上线和下线的业务代码开发,使用 Knife4j 接口文档进行测试并通过查看数据库中的接口信息装填变化来确认功能的实现

2024-02-03 14:12:17 569 2

原创 使用 IDEA 开发一个简单易用的 SDK

介绍了什么是 SDK、为什么要提供 SDK、如何开发一个简单易用的 SDK,详细介绍了开发 SDK 的步骤和截图示例,在 SpringBoot 项目中导入自己开发的 SDK(本地的 Maven 仓库中)进行测试,最后介绍了 @ConfigurationProperties 注解的使用。

2024-02-02 22:52:05 4562

原创 API 签名认证

介绍了什么是 API 签名认证、为什么需要 API 签名认证以及如何实现 API 签名认证,签名认证普遍需要六个参数,加密算法中的对称加密、非对称加密和单向加密并举出案例进行说明辅助理解

2024-02-01 23:10:49 603 1

原创 LeAPI - 使用 oneapi 插件自动生成前端请求代码

介绍 OpenAPI 规范,使用 Ant Design Pro 提供的 oneapi 插件自动生成前端请求接口的代码

2024-01-29 12:00:00 724

原创 使用 Ant Design Pro 初始化前端项目

记录初始化 Ant Design Pro 前端项目时的详细步骤和报错踩坑记录,安装依赖后启动启动项目查看效果

2024-01-28 14:21:57 1089 1

原创 浪花 - 后端接口完善

浪花项目后端接口完善,修改后端 bug,项目完结撒花✿✿ヽ(°▽°)ノ✿

2024-01-27 16:12:54 782

原创 浪花 - 响应拦截器(强制登录)

浪花项目优化:强制登录,使用 Axios 前端全局响应拦截器,自动跳转到登录页

2024-01-26 19:32:58 798

原创 浪花 - 用户匹配算法

浪花用户匹配功能的开发,用户匹配需要计算用户的相似度,根据标签信息来计算,使用了编辑距离算法实现对高相似度用户的筛选,逐步优化查询数据库计算匹配度的性能,分析了几种优化方向并实现部分,较大幅度地提高了用户匹配的效率。最后使用接口文档测试算法的正确性

2024-01-25 19:18:29 980

原创 Redisson 分布式锁解决主从一致性问题的原理

介绍在 Redis 集群模式下主从不一致问题的产生原因,剖析 Redisson 解决主从不一致问题的原理——mulitLock(联锁)

2024-01-24 22:24:50 867

原创 Redisson 分布式锁可重入的原理

介绍了 Redis 自主实现的分布式锁的弊端——不可重入,并分析使用 Redisson 实现的分布式锁的可重入的原理和核心思想

2024-01-24 21:39:39 651 1

原创 浪花 - 用户退出队伍

浪花用户退出队伍功能的接口开发,分析业务逻辑,区分队长退出队伍和普通队员退出队伍的情况,使用 Knife4j 接口文档进行测试并通过 Debug 发现代码中的 Bug(已解决),测试后查看数据库队伍表和用户 - 队伍关系表的退出情况(逻辑删除)

2024-01-24 14:33:12 409

原创 浪花 - 用户加入队伍

浪花用户加入队伍的后端接口开发,分析业务需求和校验逻辑,使用 Knife4j 接口文档进行测试,并查看数据库用户加入队伍是否成功,检验业务层判断逻辑是否生效(不能重复加入、创建和加入的队伍不能超过 5 个等)

2024-01-23 21:59:48 363

原创 浪花 - 更新队伍信息

浪花更新队伍信息接口的开发记录,分析此接口的需求和业务逻辑,使用接口文档进行测试并记录报错:The dependencies of some of the beans in the application context form a cycle:(Bean 的依赖关系形成循环)已解决✔

2024-01-23 19:57:57 374

原创 浪花 - 查询队伍列表

记录查询队伍列表的功能开发,关联查询了创建队伍的用户信息并封装统一返回类,分析查询队伍列表功能的主要业务逻辑并实现业务代码

2024-01-23 17:27:00 433

原创 浪花 - 添加队伍业务开发

添加队伍功能业务开发,设计接口的请求参数、请求方式、请求路径和响应数据,完善校验逻辑,并使用 Knifej 接口文档进行添加队伍接口的测试

2024-01-23 14:20:09 526

原创 浪花 - 组队功能后端开发

组队功能的后端开发,包括队伍的增删改查、列表查询和分页查询,介绍了请求参数包装类和包装类的作用

2024-01-22 20:46:04 550

原创 分布式锁原理及实现

介绍了锁的使用场景、如何控制只有一台服务器执行同一个定时任务的系统设计思想,Java 程序中使用 JVM 提供的(synchronized 关键字声明的同步锁的缺点),分布式锁的核心思想和几种实现方式介绍,重点介绍了如何使用 Redis 来实现分布式锁以及存在的各种问题,如误删锁等,最后给出 Redisson 实现的分布式锁的使用方式,并介绍了 Redisson 中锁过期的解决方法——看门狗机制的原理和注意事项。在定时任务(用户推荐列表的缓存预热)中实践分布式锁

2024-01-21 22:56:59 1754

原创 浪花 - 主页性能优化

介绍了缓存的使用场景、缓存的几种实现方式、使用 Spring Data Redis 来操作 Redis 缓存数据库。添加了 RedisTemplate 的配置文件,使用缓存优化了主页查询推荐用户列表的性能。进一步介绍优化主页性能的方法——缓存预热,使用 Spring 提供的定时任务来实现缓存预热

2024-01-20 21:18:35 1367 3

原创 浪花 - 主页开发

浪花主页用户推荐页的初步开发,抽取了用户列表组件。介绍了导入大量数据的几种方式:使用可视化界面(IDEA 中的 DataGrip)、执行 SQL 的 INSERT 语句、编写 Java 程序控制数据导入。还使用了分页查询对查询结果进行过滤

2024-01-20 11:18:09 613 1

原创 浪花 - 用户信息展示+更新

前端通过 Axios 请求获取当前登录用户信息,首先要先进行用户登录步骤,让后端种上 Cookie,通过配置 withCredential 让前端发送请求时携带 Cookie,后端识别用户登录态返回当前登录用户的个人信息进行展示。完善更新用户信息功能,发送 Axios 请求更新成功返回展示页面,

2024-01-19 11:19:55 930 1

原创 浪花 - 单机登录升级为分布式 Session 登录

分析了单机登录的请求处理过程以及单击登录在集群模式下的缺点,需要改进为分布式 Session 登录,解析了实现分布式 Session 登录的原因以及原理。并介绍了使用 Redis 来实现分布式登录的详细步骤,最后给出分布式登录的实现完成情况

2024-01-17 15:08:42 1154

原创 IDEA 在本地启动多个 SpringBoot 后端服务模拟集群

介绍了常用的两种在多个端口启动 SpringBoot 项目的方法,使用 IDEA 界面和在控制台输入命令运行打包好的 jar 包并传入启动配置

2024-01-17 10:05:37 954

原创 浪花 - 搜索标签前后端联调

完善后端接口并使用 Knife4j 接口文档进行测试。完成根据标签搜索接口的前后端联调,前端使用 Axios 向后端发起请求,解决前后端服务的跨域问题后,使用 qs 库的 querystring parser 传参解析器序列化前端的请求参数列表,接收后端响应数据并引入 Vant 提供的 Empty 空状态组件处理响应数据为空时的前端视图页面。将跨域问题的几种方式附在文章末尾,并附上使用 Nginx 网关支持跨域的配置代码。

2024-01-16 23:40:09 1572 1

原创 浪花 - 搜索结果展示页

开发浪花 - 搜索结果展示页,使用 Vant 提供的 Button 按钮组件触发搜索操作、Card 商品卡片组件展示用户列表,并使用 vue-router 提供的两个钩子函数 useRouter() 和 useRoute() 在路由跳转时传递和接收路径参数,展示了用户搜索页面的初步效果

2024-01-15 14:06:04 398

原创 Vuex 状态管理

介绍了状态管理库 Vuex 及使用方式,包含如何使用 Vuex 定义和展示数据以及同步操作如何修改共享数据和异步操作如何修改共享数据,通过使用 Vuex 可以让多个组件之间方便地共享数据

2024-01-15 13:15:24 1104

原创 Java 使用 EasyExcel 爬取数据

分析如何爬取数据,主要内容是介绍使用 EasyExcel 来读取 Excel 数据的两种方式:使用监听器绑定 Excel 文件进行读取和同步读取的方式,以及两种方式的有缺点,待完成数据的清洗和存入数据库

2024-01-14 20:44:21 1328 1

原创 Java 后端整合 Swagger 和 Knife4j 接口文档

详细介绍了接口的文档的作用和使用方式,并在 SpringBoot 项目中手动整合 Swagger 文档,通过修改 SpringMVC 的配置解决了 SpringBoot 2.6 整合 Swagger 遇到的问题 Failed to start bean 'documentationPluginsBootstrapper'; 并以用户登录接口为例,介绍如何使用功能接口文档进行调试

2024-01-13 21:12:37 2030 2

原创 浪花 - 用户信息编辑页

完成了浪花前端用户编辑信息页的开发,主要记录了开发过程中如何通过绑定路由跳转的路径参数进行表单的展示和数据的修改,还辨析了 vue-router 提供的 useRouter() 和 useRoute() 两种钩子函数的区别

2024-01-11 21:29:27 901

原创 浪花 - 用户信息展示页

进行浪花用户信息展示页的开发,使用 Vant3 组件库的 Cell 单元格组件展示用户信息,并模拟数据进行页面效果的展示

2024-01-10 17:19:20 385 1

原创 浪花 - 搜索标签过滤及取消搜索

本文介绍了 Vue 的响应式对象 ref,并附 Vue 的响应式系统的工作方式。开发了浪花搜索页面的搜索过滤和取消搜索功能,记录了踩坑过程和注意事项

2024-01-09 18:34:41 387

原创 浪花 - 前端搜索页面设计+开发

为浪花的搜索页面选择合适的组件,包括搜索框、可关闭标签和 TreeSelect 分类选择组件. 介绍了使用 Vue 框架时路由跳转的两种方法并实践. 展示搜索页面的初步设计效果并附 Vue 的内置指令 v-for 的使用示例

2024-01-08 21:46:04 930 1

原创 浪花 - 前端路由整合详细步骤

详细介绍了前端 Vue 项目整合路由的每一个过程,并测试组件是否能够正常跳转

2024-01-07 17:01:39 617 1

原创 浪花 - 根据标签搜索用户

开发浪花的后端接口——根据标签搜索用户,使用两种方式(SQL 查询和内存查询)并分析比较了查询效率,给出三种拓展思路;使用 Mybatis-plus 开发框架和 MybatisX 插件提高开发效率;分析介绍序列化和反序列化和几种常用 JSON 序列化库。

2024-01-07 12:06:42 1528 3

原创 浪花 - 后端初始化

复用 SpringBoot 后端进行浪花的后端初始化,遇到报错 JDK 的问题和 IDEA 控制台乱码的问题(顺利解决)

2024-01-07 09:58:41 405 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除