- 博客(153)
- 收藏
- 关注
原创 深度排查 RabbitMQ 消费“忽接忽不接”的离奇 Bug!一次抽奖成功一次失败?我经历了什么…
用户登录创建抽奖活动启动抽奖异步决定中奖人异步推送中奖结果展示中奖名单为了保障抽奖体验,我们引入了RabbitMQ来异步处理中奖逻辑和消息推送,使得主流程不被阻塞,提升响应速度和系统吞吐能力。收获说明🧠 RabbitMQ 消费机制明确了同队列多消费者的行为是轮询而非广播🛠 系统测试能力学会用“场景复现”分析复杂异步问题⚠ 部署注意事项开发、测试、线上环境需要明确区分监听对象。
2025-06-12 14:16:06
446
原创 Linux 杀进程指令详解:`kill -9 PID` 和 `kill -15 PID` 有什么区别?
kill -15(SIGTERM):温和终止,允许进程自我清理,推荐优先使用。kill -9(SIGKILL):强制终止,直接由系统杀死进程,无清理过程。一个是“请求”,一个是“命令”;一个可以被处理,另一个不可商量。
2025-06-11 23:17:59
535
原创 【MySQL 从 0 讲解系列】深入理解 GROUP BY 的本质与应用(含SQL示例+面试题)
GROUP BY是一个分组语句,用于将结果集按照一个或多个字段进行分组,并常与聚合函数(如COUNT()SUM()AVG()MAX()MIN())一起使用,对每个组分别进行统计。GROUP BY是分组;HAVING是对分组后的结果进行筛选;HAVING一般与聚合函数一起使用,而WHERE是分组之前的筛选条件。能力是否支持按字段组合分组✅配合聚合函数统计✅配合 HAVING 筛选✅多字段组合分组✅替代 DISTINCT 去重✅(功能上)点击进入力扣上这道题目可以很好的锻炼到。
2025-06-11 09:35:32
724
原创 【MySQL从0讲解系列】彻底搞懂 HAVING:和 WHERE 有什么区别?
Q1:HAVING 和 WHERE 的区别?WHERE是过滤原始数据,不能用聚合函数;HAVING是过滤分组之后的结果,常用于配合聚合函数。Q2:可以只用 HAVING 而不用 GROUP BY 吗?A:这和WHERE类似,但不推荐这么写,一般 HAVING 是和 GROUP BY 配套使用的。Q3:能用 HAVING 替代 WHERE 吗?A:不建议。虽然在某些情况下可以实现相同结果,但它们的执行阶段不同,用错会导致性能或结果出错。场景应使用关键字原始数据的条件过滤WHERE。
2025-06-11 09:03:11
280
原创 主键(PRIMARY KEY)与唯一键(UNIQUE KEY)的区别详解
❌ 报错:只能定义一个主键!Q1:主键和唯一键的区别?主键用于唯一标识一行数据,不能为 NULL,一个表只能有一个主键;唯一键也约束唯一性,但可以为 NULL,且一个表可以有多个唯一键;主键是强约束(唯一 + 非空 + 唯一标识),唯一键是弱约束(只是唯一)。Q2:可以同时设置主键和唯一键吗?答:可以。一个字段作为主键,另一个或多个字段作为唯一键,不冲突。Q3:主键和唯一键哪个更适合身份证号字段?如果身份证号一定不能为空并作为唯一身份标识,建议用主键;
2025-06-10 23:53:26
463
原创 性能测试必看!超全核心指标详解 + 实战案例 + 面试宝典
客户端、服务器端、业务指标环环相扣,需关联分析,切忌孤立看待!性能测试的核心价值在于发现并解决瓶颈。熟练使用工具,更要掌握指标关联分析、根因定位的思维。所有指标阈值和测试场景都应源于并服务于业务需求。上线后持续监控生产环境指标,性能保障是持久战!🚀下次做性能测试,对照这份清单,确保关键指标一个不漏!💬 互动时间:你在性能测试中踩过最深的“坑”是哪个指标异常导致的?或者对哪个指标的理解有独到心得?欢迎评论区分享交流!#性能测试 #软件测试 #系统优化 #后端开发 #面试题。
2025-06-10 21:51:13
747
原创 Linux 性能瓶颈,你在看哪里?—— CPU、内存、磁盘与网络 I/O 的深度解读与实践
在运维和开发的世界里,系统性能是永恒的焦点。通过熟练运用这些命令和理解这些核心指标,你就能更有效地诊断 Linux 系统的性能问题,从而为你的应用提供一个稳定、高效的运行环境!(run queue) 列,如果长期大于 CPU 核心数,则表明 CPU 资源不足,有大量进程在排队等待 CPU。例如,一个 4 核 CPU 的服务器,如果负载长期大于 4,就可能存在 CPU 瓶颈。CPU 是计算机的“大脑”,其使用率直接反映了系统计算负载的状况。内存是应用程序运行的“工作空间”,充足的内存是系统高效运行的基础。
2025-06-10 21:46:20
539
原创 Linux常用命令速查与面试高频命令总结
Linux 是后端、运维、测试岗位的必备技能之一,而熟练掌握命令行工具,不仅提升工作效率,也能帮助你在面试中脱颖而出。
2025-06-10 12:11:37
332
原创 一文搞懂 SQL 执行顺序(SQL 初学者必看!)
从哪儿找(FROM),怎么连(JOIN/ON),先筛行(WHERE),再分组(GROUP BY),组后筛(HAVING),选字段(SELECT),排序走(ORDER BY),最后限制(LIMIT)留。写 SQL 的顺序和数据库执行 SQL 的顺序,其实并不一样。你是不是也有这样的疑惑:为什么我写的。在最前面,但数据库却好像“先不看它”?,让你从小白进阶为思路清晰的 SQL 玩家!假设有一个学生成绩表。
2025-06-10 10:05:37
368
原创 深入理解 MySQL 中的更改操作:UPDATE、ALTER、RENAME 的原理与区别
MySQL 的更改操作不仅仅是语法问题,更是对数据库引擎、日志机制、锁机制的理解和运用。合理使用UPDATEALTER和RENAME能帮助你构建更加高效、可维护的数据库系统。🙌。
2025-06-10 00:36:59
525
原创 深入理解 MySQL 中的删除操作:DELETE、TRUNCATE 和 DROP 的区别与原理
特性DELETETRUNCATEDROP支持事务回滚✅ 是❌ 否❌ 否是否逐行删除✅ 是❌ 否❌ 否是否触发触发器✅ 是❌ 否❌ 否是否重置自增计数❌ 否✅ 是✅ 是是否保留表结构✅ 是✅ 是❌ 否适合大表操作❌ 慢✅ 快✅ 极快MySQL 的删除操作不仅是语法问题,更是数据库底层原理、事务机制、日志系统的综合体现。理解清楚三种删除方式的区别和使用场景,对于写出高性能、可维护的数据库代码至关重要。🙌。
2025-06-10 00:35:34
915
原创 Linux 性能利器:详解 `top` 命令的使用与输出信息解析
top优点说明实时监控可持续查看系统资源动态变化可交互通过快捷键进行排序、杀进程等易部署所有 Linux 系统默认内置,无需安装排障利器快速排查 CPU 或内存异常问题top是每个 Linux 使用者都必须掌握的工具,它在系统维护、性能分析中都发挥着重要作用。建议大家多练习,用实际问题来驱动理解!
2025-06-09 23:57:15
1004
原创 LRU 缓存机制详解与实现(Java版) + 力扣解决
用 HashMap 加速查找 + 双向链表维护访问顺序这一组合思想,是很多设计类题目的范式和精华。
2025-06-09 10:35:46
946
原创 Roller: 抽奖系统测试的幕后剧本-测试报告
该项目是一个操作简便、安全可靠的抽奖系统。主要业务是抽奖,并支持管理员管理用户、奖品和抽奖活动,以配置抽奖内容。抽奖操作由管理员进行,支持依次抽取配置好的奖品和人数,并保证每人最多中一次奖。系统对异常情况进行了处理,并对中奖人发送短信和邮件通知。项目采用了分层分模块设计,技术栈包括 Spring Boot3、JDK 17、MySQL、MyBatis、Redis、RabbitMQ、SLF4J + logback 等。
2025-06-01 20:20:32
895
原创 Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)
比较点适用请求类型适用参数类型简单类型(字符串、文件、数字)复杂类型(JSON 对象、多个文件、嵌套结构)JSON 自动转换❌ 不支持✅ 支持(通过 HttpMessageConverter)常见使用场景普通表单提交、单文件上传JSON + 文件上传、富表单场景理解和的使用场景,能够帮助我们在设计接口时做出更合适的技术选择,也能避免参数绑定错误、JSON 转换失败等常见问题。✍️ 作者:Lvzi📅 时间:2025年。
2025-05-30 17:30:15
1138
原创 事务详解及面试常考知识点整理
比如你和室友一起做饭,只有一个炉灶,就得排队做(串行);但如果有两个灶,就能同时炒菜(并发)。数据库中的并发执行可以提升处理效率,但也容易引发问题。下面是三大经典并发问题,每一个问题都有对应的隔离级别来解决。事务本质上是为了解决数据一致性与并发效率之间的矛盾。若业务要求强一致性(如转账、库存),优先选择高隔离级别;事务四大特性(ACID)三大并发问题(脏读、不可重复读、幻读)四种隔离级别及其对应能力MySQL 默认的隔离级别如需更深入地学习事务的原理与实现,如。
2025-05-27 08:52:21
746
原创 算法系列--分治排序|归并排序|逆序对的求解
归并排序和快速排序的区别在于排序的时机不同,归并排序是等到分解完毕之后在进行排序,快速排序是先进行分解,再排序;更形象的说,归并排序更像二叉树的后序遍历,遍历完左右子树再打印根节点;快速排序反之合并两个有序列表。
2024-07-07 11:07:39
831
原创 Java中String,StringBuilder,StringBuffer的区别
当然可以,我们可以通过面试问答的形式来探讨String和的区别。
2024-06-30 14:02:02
357
原创 前缀和算法系列|概念讲解|应用场景|大量例题讲解
一维前缀和就是一个简单的dp问题链接:一维前缀和(模版题)代码:2.二维前缀和同理,二位前缀和是一个简单的二维dp问题,难点在于dp表的状态转移方程和如何使用,需要进行推导链接:二维前缀和代码:3.使用条件前缀和算法是一种高效解决数组区间求和问题的技巧。它通过预处理数组,构建一个前缀和数组,。以下是一些你必须要掌握的核心概念和步骤:前缀和数组定义:构建前缀和数组:区间和的计算:理解并构建前缀和数组:使用前缀和数组进行区间求和:优化特定问题:01.寻找数组的中间下标链接:https://
2024-06-27 09:19:00
1077
原创 贪心算法系列(二)|摆动序列最长递增子序列|买卖股票的最佳时机|买卖股票的最佳时机II
后面两种情况从宏观角度来看是存在波峰和波谷的,所有相同的点(平直部分)其实可以当作一个点,所以如果遇到。每次都假定今天卖出,那么就需要知道今天之前的最小值,这样才能获得当天的最大利润,,如果小于,就能构成一个新的,更长的递增子序列,取所有情况中的最大值。位置的元素时,我们只关心i位置之前的。,这样遍历一遍数组就能得到最大利润。即可,无需关注序列本身的组成,观察dp的思路不难发现,如果趋势是平的怎么处理。的解题思路中,当走到。所有的今天构成了每天。
2024-06-24 17:38:36
480
原创 二分查找算法系列|朴素二分查找|查找左/右端点的二分查找|例题详解
二分查找算法是时间复杂度为O(logN)的搜索算法,常用于处理在有序数组中查找元素。
2024-06-11 18:52:00
963
1
原创 数学题目系列(一)|丑数|各位和|埃氏筛|欧拉筛|位运算判断奇偶
三种算法的时间复杂度对比(数据量大)对比实验:求2-n之间所有的质数。暴力解法(无法通过所有样例)
2024-06-06 21:29:45
817
原创 算法系列--BFS解决拓扑排序
💕"请努力活下去"💕作者:Lvzi文章主要内容:算法系列–算法系列–BFS解决拓扑排序大家好,今天为大家带来的是什么是拓扑排序拓扑排序–解决有顺序的排序问题(要做事情的先后顺序)建立一个有向图来表示做事情的先后顺序如何建图–灵活使用语言提供的容器要存储的是:一个节点与其所相连的节点(边),两点构成一条线段–哈希表存储我们是根据入度是否为0来决定先后顺序的一个节点的入度就是有多少个指向该节点的边使用数组int[] in表示将所有入度为0的节点添加进队列循环队列t。
2024-05-02 17:44:59
1357
原创 宽度优先遍历--边权为1的最短路问题
最短路问题是图论中非常经典的一种问题,其实就是通过代码找到两点之间的最优路径(往往是距离最短),最短路问题的解法很多,比如A*算法,迪杰斯特拉算法等等,本文介绍最短路问题中最简单的一种边权为1的最短路问题所谓的边权,就是指两个地点之间的距离为1(如下图所示)很明显,实际情况的道路更加复杂,两个地点之间的距离不能全是1,所以边权为1的最短路问题是比较特殊,简单的最短路问题要记录整个过程的最短路,可以通过bfs来解决,选定一个地点,以这个地点为中心向外扩展(因为一个地点连接着很多的地点)
2024-04-28 11:18:57
784
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人