- 博客(25)
- 收藏
- 关注
原创 深入理解限流:从原理、算法到实践,一文吃透
限流是分布式系统中的关键防护技术,用于控制单位时间内的请求数量,保障系统稳定性。文章详细解析了五种常用限流算法:固定窗口计数器(简单但存在临界问题)、滑动窗口计数器(解决临界问题)、漏桶算法(平滑处理速度)、令牌桶算法(允许突发流量)以及优化版滑动窗口(高精度)。同时强调合理设定限流参数需基于系统压测和业务场景,区分核心/非核心接口,并动态调整。此外,文章澄清了限流与熔断的区别:限流是入口防护控制流量,熔断是出口防护处理依赖故障。建议将限流与其他技术结合,构建完整的高可用防护体系。
2026-02-20 21:22:21
1511
原创 如果你需要涉及一个将已登录的用户踢下线的功能,你会如何实现?
本文介绍了实现用户强制下线功能的方案。核心思路是通过使登录凭证失效并让客户端感知来实现,适用于Token或Session机制。以JWT+Redis为例:1)服务端维护有效Token列表和黑名单;2)踢下线时将目标Token加入黑名单;3)通过拦截器校验请求Token有效性。可选WebSocket主动通知提升体验。同时提供了Java Spring Boot的完整实现代码,包括Token工具类、拦截器和控制器。
2026-02-20 20:08:36
616
原创 《从零到一学Python》基础语法(不含安装,直接上手写代码)
本文为零基础学习者提供Python基础语法入门指南,涵盖核心知识点和常见难点。主要内容包括:1)print()函数的用法与进阶参数;2)变量的定义规则与赋值操作;3)字符串、整数、浮点数等基础数据类型及转换方法;4)input()输入函数及类型转换;5)算术运算符和优先级规则;6)语法注意事项(缩进、引号、符号等)。文章通过实例代码演示基础操作,重点解析了数据类型转换、运算符优先级等新手易错点,帮助读者快速掌握Python基础语法,为后续学习条件判断和循环打下基础。
2026-02-14 16:36:01
1595
1
原创 Cookie、Session、Token 三者核心区别(易懂版)
本文通俗易懂地讲解了Cookie、Session和Token的核心概念与区别:Cookie是存储在客户端的"身份小纸条",用于保存简单信息;Session是服务器端的"专属档案柜",保存敏感信息;Token则是无状态的"身份通行证",适合跨域场景。三者在存储位置(客户端/服务器)、安全性(低/中/高)、状态性(无/有/无)和扩展性(差/差/好)等方面存在本质差异。
2026-02-04 20:58:15
1957
原创 贪心算法小白入门:凭直觉就能解题的神仙思路
本文以生活场景为切入点,用"分饼干"的通俗例子讲解贪心算法核心思想:每一步选择当前最优解,最终累积成全局最优。文章详细介绍了贪心算法的3个核心步骤(明确目标、确定策略、执行验证),并通过两道力扣入门题(分发饼干、买卖股票)手把手演示代码实现。同时提醒读者贪心算法的局限性,指出当局部最优不能保证全局最优时需避免使用。最后给出学习建议:从简单题入手,结合生活场景练习,循序渐进掌握贪心算法。全文采用口语化表达,降低理解门槛,适合编程初学者入门学习。
2026-02-03 14:52:09
978
原创 一次线上死锁引发的血案!万字长文讲透原因、预防与解决
在多线程编程中,死锁是最让人头疼的问题之一 —— 它让多个线程互相等待对方释放资源,最终所有线程都陷入永久阻塞,程序卡死且无法自行恢复。小到单机应用的功能异常,大到分布式系统的服务不可用,死锁都可能引发严重问题。 本文会从死锁的核心发生原因讲起,结合 Java 代码模拟死锁场景,用直观的表格和图文梳理死锁形成过程,再详细讲解死锁的预防策略和死锁发生后的解决办法,让你从根源理解并解决死锁问题。
2026-01-31 22:43:22
1083
2
原创 一文读懂5种常见网络攻击:从原理到防御(小白友好版)
在数字化时代,我们每天刷网页、用APP、逛电商,背后都藏着网络安全的“暗礁”——网络攻击。对小白来说,这些攻击名词听起来晦涩难懂,但其实本质都是黑客钻系统漏洞的“小动作”。今天就用大白话拆解5种高频网络攻击:DDoS攻击、SQL注入、CSRF攻击、XSS攻击、DNS劫持,每个都讲清“是什么”“有啥危害”“怎么防”,还附直观图解,看完就能get核心逻辑。
2026-01-29 13:34:12
1237
原创 从裸奔到加密:HTTP 与 HTTPS 的终极对决,小白也能看懂的安全科普
在上网冲浪时,你是否注意过浏览器地址栏里的 “http://” 和 “https://”?一个多了个 “S”,背后却藏着天差地别的安全逻辑。前者是互联网早期的 “裸奔协议”,数据传输如同在大马路上喊悄悄话;后者则是加了 “加密保险箱” 的安全卫士,让窃取信息的黑客无从下手。今天就用最通俗的语言,带大家搞懂 HTTP 和 HTTPS 的核心区别、HTTPS 的安全原理,以及为什么现在所有正规网站都在强制使用 HTTPS。
2026-01-27 16:29:08
1405
1
原创 用“快递物流”讲透TCP/IP模型:小白也能秒懂的网络底层逻辑
日常发微信、刷短视频、浏览网页的背后,都离不开TCP/IP协议簇的支撑。对于小白而言,TCP、IP、端口号、协议栈等概念往往晦涩难懂,其实这套网络底层逻辑可通过“快递物流”类比拆解。本文将在通俗类比的基础上,强化技术干货,带你清晰掌握TCP/IP四层模型的核心原理与实际作用。
2026-01-27 13:08:22
7095
1
原创 从源码来看ArrayList为什么不是线程安全的
摘要:ArrayList在多线程环境下存在线程安全问题,主要由于add方法的非原子性操作导致。当多个线程并发执行add时,可能发生数据覆盖、size不一致或数组越界等问题。具体表现为:1)部分元素为null;2)索引越界异常;3)实际size与添加数量不符。问题根源在于size读取、容量检查、元素赋值和size更新这几个步骤不是原子操作,会产生竞态条件。解决方案包括使用Collections.synchronizedList或线程安全的CopyOnWriteArrayList等替代方案。
2026-01-26 15:29:11
1030
2
原创 《解读spring源码》IOC容器模块
本文基于Spring Framework 5.3.x版本,深入解析IOC容器的核心实现机制。以AnnotationConfigApplicationContext为例,详细剖析了容器启动的关键阶段:从准备刷新环境、创建BeanFactory、配置工厂,到执行后置处理器、初始化基础设施组件,再到实例化单例Bean和完成刷新事件。重点阐述了每个阶段的核心逻辑,如BeanDefinition加载、依赖注入处理、生命周期回调等,揭示了Spring IOC容器如何通过精妙的分层设计实现对象管理与解耦。
2026-01-23 23:08:30
1605
1
原创 LangChain4j会话功能全解析:从快速入门到核心实战
LangChain4j 的@AiService注解是声明式会话开发核心,通过AnnotatedChatService接口可快速实现:基于@SystemMessage/@UserMessage标准化提示词模板(支持单 / 多参数)、借助@MemoryId实现用户级会话记忆隔离,无需手动封装ChatModel调用逻辑,大幅简化对接通义千问等大模型的多轮会话开发,同时覆盖配置优化、问题排查与进阶扩展全维度实战要点。
2026-01-19 22:11:37
797
1
原创 普通人视角:如何辨别 “电子手办” 式 AI Agent?3 个实用判断标准
当前AIAgent市场宣传火热,但实际产品良莠不齐。本文提出三个实用标准帮助用户甄别:1)效率测试,看能否节省30分钟以上核心时间;2)场景适配,测试处理意外情况和常用软件的能力;3)风险控制,考察关键操作确认、错误回滚和数据安全机制。建议用户理性看待AIAgent,选择能真正融入工作流程、安全可靠的工具,避免被营销噱头误导。随着技术发展,未来AIAgent将更智能实用,但现阶段仍需注重实际效果而非概念炒作。
2026-01-18 14:50:47
870
2
原创 《从零学习JMeter》第三篇:Jmeter实战:高并发与高频率性能测试全指南
摘要:本文详细介绍了使用Jmeter进行高并发、高频率性能测试的实战方法。首先明确了高并发(大量用户同时请求)与高频率(单用户高频请求)的核心概念差异,然后从环境搭建、工具配置、脚本设计等方面展开讲解。重点包括:线程组参数设置、同步定时器应用、分布式压测扩展、恒定吞吐量控制等核心技巧,并提供了JVM优化、系统参数调整等性能优化方案。最后强调测试结果分析要点和常见误区规避,帮助测试人员准确评估系统性能瓶颈。
2026-01-17 21:45:51
1229
原创 全!!!Redis面试题目总结:从基础到进阶,覆盖90%高频考点
Redis面试高频考点解析:从基础到实践全攻略 本文系统梳理了Redis面试中的核心问题,涵盖基础概念、进阶原理和实际应用。基础篇介绍5种数据类型及底层实现、Redis高性能原因、与Memcache区别;进阶篇详解持久化方案、主从复制、集群原理、单线程设计、事务机制、内存管理等;实践篇重点讲解分布式锁实现、缓存三大问题(穿透/击穿/雪崩)解决方案。文章通过原理与实践相结合的方式,帮助开发者构建完整的Redis知识体系,从容应对各类面试场景。
2026-01-17 17:53:07
802
2
原创 《从零学习JMeter》第二篇:JMeter参数化完全指南:从入门到实战避坑
JMeter参数化完全指南:从基础到实战,系统讲解4种核心参数化方法(用户定义变量、用户参数、CSV数据文件、函数助手)及接口关联技巧。文章详细剖析每种方法的适用场景、操作步骤和常见问题解决方案,帮助测试工程师实现多用户并发测试、动态数据调用等复杂场景。特别针对CSV参数化中的路径乱码、数据隔离等高频问题提供实用避坑建议,并给出不同场景下的参数化方案选择策略,助力提升JMeter测试脚本的复用性和真实性。
2026-01-16 16:36:50
939
原创 《从零学习JMeter》第一篇:入门与安装
Apache JMeter是一款开源性能测试工具,具备多协议支持、跨平台、分布式测试等核心特性,可模拟高并发负载评估系统性能。其优势在于开源免费、可视化报告和可扩展性,但存在GUI资源消耗大、学习曲线陡等缺点。入门需配置JDK环境,支持GUI调试和CLI压测模式,适用于Web、API、数据库等多种场景测试,是性能评估和瓶颈定位的重要工具。
2026-01-15 22:02:44
855
原创 15分钟理解一个秒杀方案
本文介绍了一个基于SpringBoot的高并发秒杀系统设计方案。该系统通过多级防护策略应对高并发场景:1) 前置预热将库存数据加载到Redis;2) 使用令牌桶算法限流拦截超量请求;3) 本地内存标记减少Redis访问;4) Redis层处理库存预扣减和防重校验;5) 通过消息队列异步处理订单,实现削峰填谷;6) 最终采用乐观锁和事务确保数据库操作的原子性。系统从优化前QPS423提升到优化后QPS2501,有效解决了高并发场景下的数据库保护、超卖等问题。
2026-01-15 17:05:14
1644
原创 “为什么我的任务做完了,奖励还是没给我!??”——幂等的秘密
本文探讨了APP激励体系中的幂等性问题及解决方案。针对奖励重复发放的风险,文章介绍了幂等性的概念及其在计算机领域的应用。重点分析了五种实现方案:唯一请求ID+分布式锁(适用于高并发场景)、数据库唯一索引(适合普通任务)、状态机控制(物流状态更新)、token机制(防止表单重复提交)和乐观锁(余额更新)。作者选择数据库唯一索引方案实现用户积分系统,通过设计包含用户ID、任务ID和日期的幂等key,结合数据库唯一约束确保奖励只发放一次。该方案在保证数据一致性的同时避免了分布式锁的性能开销,适合中低并发场景。
2026-01-12 13:57:34
512
转载 VUEX全局状态管理
本文介绍了Vuex状态管理的基本使用方法和原理。主要内容包括:1) 安装Vuex并创建store文件夹结构;2) 通过createStore创建实例并引入子模块;3) 子模块menu.js的实现,包含state状态和mutations修改方法;4) Vuex的工作原理,包括状态集中管理、可追踪性和响应式更新;5) 使用手册,详细说明了如何创建和挂载store,以及模块化设计的优势。文章强调Vuex适用于多组件共享状态的复杂场景,能够有效解决跨组件通信问题。
2026-01-10 15:36:47
55
原创 面试时回答索引是为了提高查询效率,面试官问“没了??”(MySQL索引的面试题目)
MySQL索引面试要点总结:索引虽能提升查询效率,但并非万能,过多索引会占用空间、影响增删改性能。设计原则包括选择高区分度列、遵循最左前缀原则、避免大字段索引等。索引分为聚簇索引(存储数据行)和非聚簇索引(存储指针),B+树因其低树高和范围查询优势成为主流结构。常见索引失效场景有模糊查询、函数操作、违反最左前缀等。使用技巧包含索引下推(引擎层过滤)、索引覆盖(避免回表)和前缀索引(优化大字段)。掌握这些核心知识点可帮助在面试中脱颖而出。
2026-01-10 14:17:40
865
原创 MySQL中有哪些锁
在MySQL中,可以按照锁的模式和锁的粒度进行划分锁,如下提纲: 行级锁的图像表示:记录锁:间隙锁:临键锁:表锁作用行锁作用。
2026-01-08 16:06:20
592
原创 软件测试简答题
本文摘要涵盖了软件测试领域的多个核心概念和方法。主要内容包括:性能测试脚本编写流程(设计、录制、修改、测试、优化);常见安全威胁如SQL注入和XSS攻击原理;软件缺陷定义及测试模型(V/W/H模型);黑盒测试目标(功能、界面、性能等错误检测);蜕变关系应用和Fuzz测试原理;测试类型对比(白盒/黑盒/灰盒);测试用例设计方法(等价类、边界值等);特殊测试形式(Ad-hoc、探索式、随机测试);移动应用测试难点(设备碎片化、网络环境等);以及性能评估标准(2-5-10原则)和测试结束指标。这些内容系统阐述了软
2026-01-02 23:30:37
1181
原创 Redis+JWT实现短信验证码登录
摘要:本文提出了一种结合Redis和JWT的短信验证码登录方案。Redis用于高效存储和验证具有时效性的短信验证码,JWT则实现无状态身份验证。方案包含三个核心模块:1) Redis存储验证码并设置自动过期;2) 验证成功后签发JWT令牌;3) 拦截器验证令牌有效性。该方案具有高性能、分布式支持、高并发处理能力等特点,避免了传统会话管理的资源开销,适用于现代应用开发场景,兼顾安全性与系统效率。
2025-12-26 23:26:46
801
原创 “浅”入“深”出理解MVCC机制
本文系统解析了MVCC实现原理。首先介绍了4种隔离级别及其对应的脏读、不可重复读和幻读问题。重点阐述了MVCC机制,通过版本链和ReadView实现无锁并发控制:读已提交每次查询生成新ReadView,可避免脏读但存在不可重复读;可重复读事务启动时生成ReadView并复用,避免脏读和不可重复读。文章还分析了快照读与当前读的区别,指出RR级别下快照读可避免部分幻读,但当前读仍需间隙锁配合。MVCC通过牺牲存储空间换取高并发性能,特别适合读多写少场景,是数据库实现隔离级别的核心技术。
2025-12-10 23:52:09
635
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅