自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 为什么不使用 C 原生字符串,而是自研 SDS?

Redis 自研的 SDS(Simple Dynamic String)是其高性能的关键设计之一。相比 C 原生字符串,SDS 通过结构体记录长度、容量和标志位,解决了获取长度慢、二进制不安全等问题。Redis 还设计了 5 种不同大小的 Header,根据字符串长度自动选择最优类型,大幅节省内存。此外,SDS 采用空间预分配策略,减少频繁内存申请。这些优化使 SDS 成为 Redis 处理键值的基础设施,体现了 Redis 对性能和内存的极致追求。

2026-02-04 21:22:02 545

原创 从架构小白到高可用专家:集群部署(Cluster Deployment)全维度指南

在单机时代,我们常说“代码写得好,服务器没烦恼”。但在分布式、高并发的现代互联网环境下,单机早已无法承载业务的重量。集群部署 (Cluster Deployment) 不仅仅是简单地增加几台服务器,它是一场关于高可用性、伸缩性与系统健壮性的架构革命。

2026-02-03 23:58:08 927

原创 在客户端直接上传文件到OSS

本文介绍了客户端直传OSS的方案优势及实现方法。相比传统服务端代理上传,客户端直传能避免数据中转,提高上传速度并节省服务器资源。实现时需解决两大问题:一是通过配置OSS Bucket的跨域规则解决Web/小程序跨域访问限制;二是采用安全授权方案,由服务端生成带时效的签名URL供客户端使用,避免直接暴露访问密钥。文中还提供了Java代码示例展示如何生成用于PUT上传的预签名URL,并强调该方案适用于简单上传场景,不适用于分片上传等复杂情况。

2026-02-03 23:52:50 645

原创 JWT 结构深度解析,签名算法:非对称加密 RS256 / 对称加密 HS256 的区别?

本文系统解析了JWT中RS256与HS256加密算法的核心区别及Token失效机制。HS256采用对称加密,实现简单但存在密钥泄露风险;RS256使用非对称加密,公钥验签、私钥签名,更适合微服务等安全场景。JWT失效判断基于payload中的exp字段,验签通过仅证明Token真实性,还需检查过期时间。完整校验流程包括签名验证、过期检查及业务状态校验。文章还介绍了Refresh Token设计模式和Spring Security中的执行链路,强调签名防伪、exp时效与业务校验的三重验证机制。

2026-02-02 23:59:27 719

原创 一次完整的 Spring Security JWT 鉴权链路解析

Spring Security JWT 鉴权链路解析 本文详细解析了 Spring Security 中 JWT 鉴权的完整流程: 前端请求:携带 Authorization: Bearer <token> 请求头 安全过滤:SecurityFilterChain 拦截并提取 token JWT 校验:JwtDecoder 验证签名和过期时间,解析 Claims 认证封装:将 Jwt 对象封装为 JwtAuthenticationToken 存入安全上下文 控制器注入:通过 @Authentic

2026-02-02 21:48:59 895

原创 深度解析:基于 JWT + Redis 白名单的双令牌高安全认证架构

文章摘要: 本文提出了一种结合JWT双令牌与Redis白名单的高安全认证架构方案。该方案采用Access Token(15分钟有效期)和Refresh Token(7天有效期)分离机制,Access Token通过RS256非对称加密实现无状态验证,Refresh Token则通过Redis白名单进行有状态验证。核心优势在于:1)高频API请求无需查询Redis,保证性能;2)通过令牌轮换和白名单机制实现即时撤销能力;3)采用非对称加密提高安全性。方案还详细介绍了登录、资源访问和令牌刷新全流程,并对比了白名

2026-02-01 23:26:44 1081

原创 基于 Redis 实现白名单,黑名单机制详解及应用场景

本文详细介绍了基于Redis实现的JWT令牌白名单与黑名单机制。白名单机制仅允许明确列出的刷新令牌通过,适用于高安全性要求的令牌管理场景;黑名单机制则用于拒绝特定访问令牌,适用于令牌撤销等场景。文章对比了两者的优劣势,指出白名单在安全性、会话控制和性能方面的优势,并提供了典型业务场景的代码示例,包括令牌刷新和用户登出操作。这种设计通过Redis实现了高效的令牌验证和即时撤销功能,确保了认证系统的安全性和良好用户体验。

2026-02-01 17:56:28 175

原创 研发实战:Git 规范化开发全流程指南

本文详细介绍了研发团队使用Git进行规范化开发的完整流程,从环境配置到代码合并的关键步骤。主要内容包括:SSH密钥配置原理与设置方法、特性分支的创建与管理、代码提交规范、分支合并策略以及冲突处理技巧。文章特别强调了"永远不要在公共分支直接写代码"的原则,并提供了研发Git操作Checklist,帮助开发者避免常见错误。通过这套流程,研发团队可以实现安全、高效、可追溯的协作开发。

2026-02-01 17:49:08 786

原创 Git 快速入门 (实习生视角)

本文为实习生提供Git快速入门指南,聚焦实习中常用的Git操作。内容包括:安装Git并配置SSH密钥、拉取远程仓库代码、创建功能分支开发、推送代码到远程仓库、合并到发版分支以及处理冲突等核心流程。强调个人开发使用独立分支、操作公共分支前先pull、及时解决冲突等基本原则,帮助实习生快速掌握Git基本工作流程,避免纠结底层原理,高效完成开发任务。

2026-02-01 14:20:49 429

原创 Git 实战指南:从分支管理到冲突解决

本文介绍了Git分支管理的核心流程与冲突解决技巧。主要内容包括:1) 分支创建与流转,展示了从main分支到功能分支的衍生关系;2) 远程推送的多种场景及指令解析;3) 重点讲解了合并冲突的处理方法,包括冲突识别、手动编辑和最终提交的完整流程。文章还提供了开发建议,如保持main分支清洁、定期同步等实用技巧。通过清晰的流程图和命令示例,帮助开发者掌握Git协作的关键操作。

2026-02-01 13:42:03 918

原创 为什么 InnoDB 的可重复读隔离级别几乎“消灭了”幻读?——MVCC 与 Next-Key Lock 的分工协作

InnoDB的RR隔离级别通过MVCC和Next-Key Lock的协同机制几乎消除了幻读问题。对于快照读(普通SELECT),MVCC通过创建事务级Read View冻结数据视图,使事务始终读取同一历史快照,既解决了不可重复读,也避免了新行出现的幻读。而对于当前读(如SELECT FOR UPDATE),InnoDB强制读取最新数据并加锁:行锁防止数据修改,Next-Key Lock(行锁+间隙锁)则锁住可能插入新记录的间隙位置,从物理层面阻断幻读。这种设计实现了读写分离:MVCC保障读的高并发,锁机制确

2025-12-18 15:44:33 633

原创 服务线程被占满?Tomcat 线程不够用?接口一慢全站雪崩?Tomcat 线程池、exec 线程与服务线程:一次彻底讲清

本文深入剖析了Tomcat线程模型及其在Web应用中的关键作用。核心观点指出:HTTP请求处理线程(服务线程)是稀缺资源,不能被长时间阻塞。文章澄清了NIO解决的是网络IO阻塞而非业务阻塞的误区,强调同步调用模型在高并发场景的天然缺陷。通过AI绘画案例,阐述了异步架构的本质是线程职责拆分,让"快的事情快做完,慢的事情慢慢做"。最后指出单纯调大线程池不是解决方案,提出高并发系统的核心在于"尽快把线程还回去"。

2025-12-17 18:19:06 801

原创 一文搞懂令牌桶限流:平均速率与突发流量的本质(分布式令牌桶实现思路)

本文深入解析令牌桶限流算法的核心原理与工程实践。令牌桶通过固定速率生成令牌来限制系统长期平均处理能力(如100 QPS),同时利用桶容量允许短时间内消耗积累的令牌处理突发流量(如瞬时100请求)。文章通过时间线推演展示了"平均速率限制"与"突发流量允许"的辩证关系,并对比了漏桶算法的差异。针对分布式场景,提出了基于Redis+Lua的实施方案,详细说明如何原子化维护令牌状态,确保多节点限流一致性。最后指出Redis令牌桶属于"软限流",适合网关拦截

2025-12-17 18:00:13 1170

原创 HTTP 无状态与 Cookie 状态保持机制详解

HTTP协议本质上是无状态的,每个请求相互独立。Cookie机制通过在客户端存储状态信息并自动回传服务器,实现了无状态协议下的状态保持。Cookie不仅存储会话ID,还包含用户偏好、业务状态、安全令牌等多元信息。浏览器自动管理Cookie的存储和传递,无需前端干预,服务端通过Set-Cookie设置。这种设计既保持了HTTP的无状态优势,又提供了状态感知能力,是Web应用实现连续用户体验的关键基础设施。敏感信息应使用HttpOnly Cookie,且永远不要完全信任客户端数据。

2025-12-16 19:18:26 696

原创 服务器的流量、带宽是什么?计费详解

服务器流量和带宽是网站运营的关键计费项。带宽指数据传输速度上限(如5Mbps),决定网站并发访问能力;流量指实际传输数据总量(如100GB),影响费用成本。云服务器通常提供两种计费模式:固定带宽(流量不限但带宽固定)和按量付费(实际流量计费)。用户访问网站时,服务器向外发送的HTML、JS、图片等资源都会消耗出站流量。建议图片多的网站采用对象存储+CDN组合,既能降低流量费用又能提升访问速度。选择计费方案时,访问量稳定的网站适合固定带宽模式,流量波动大的可考虑按量付费。

2025-12-14 12:28:09 929

原创 联合索引有什么作用,给三个字段添加一个索引和分别给这三个字段对应添加索引,有什么区别?

联合索引(复合索引)通过将多个列组合在一个索引中,可优化多列查询、避免回表、提升排序效率,并支持最左前缀匹配。相比单独索引,联合索引存储空间小、写入性能好,在多列查询时效率更高;但单独索引在非最左前缀查询时更具优势。实际应用中应根据查询模式选择:高频多列查询用联合索引,多变单列查询用单独索引,也可混合使用。设计时需考虑列的选择性、查询场景和读写比例,并通过EXPLAIN验证索引使用情况。

2025-12-14 01:08:43 372

原创 缓存穿透、缓存击穿、缓存雪崩场景以及解决方案

缓存问题主要包括穿透、击穿和雪崩三种场景。缓存穿透指查询不存在数据导致频繁访问数据库,可通过缓存空值或布隆过滤器解决;缓存击穿是热点key失效引发瞬时高并发查询,可用互斥锁或异步刷新应对;缓存雪崩由大量key同时失效导致,需打散过期时间并建立熔断机制。针对不同问题需采取相应策略,如分布式锁、多级缓存、随机化TTL等,同时结合监控和预警机制保障系统稳定性。(150字)

2025-12-12 16:16:39 1072

原创 分片上传,断点续传流程详解

分片上传流程通过前后端协作,实现了高效、可靠的文件传输。关键点包括MD5校验、Redis临时存储和自动合并。如果你正在开发类似系统,可以考虑以下优化:- 断点续传:后端记录已上传分片,前端查询后跳过已完成部分- 并行上传:使用Promise.all同时上传多个分片- 错误重试:为每个分片添加重试机制- 安全性:添加权限校验和文件类型限制断点续传通过数据库和Redis的结合,实现了高效恢复。针对断电等极端场景,引入本地存储和文件验证是关键优化点。重试机制:每个分片上传失败时,自动重试3次。

2025-10-26 22:17:19 1049

原创 深入解析 Spring AI 中的 RAG:什么是RAG,完整的RAG工作流,SpringAI中的RAG Advisor的核心区别与选型指南​

一、什么是 RAG?二、完整的RAG工作流三、Spring AI 中的检索增强生成 Advisor 选型

2025-10-25 10:16:21 868

原创 PostgreSQL向量扩展pgvector的Docker化部署详解

确保该目录存在或 Docker 有权限创建它。这是防止数据丢失的关键!务必设置密码、端口映射和数据卷以持久化数据。: 替换为你想要的用户名、密码和数据库名。: 替换为你主机上用于存储数据库数据的。扩展的信息,表明它已成功加载并可用了。: 给你的容器起个名字。

2025-10-24 19:37:03 445

原创 Bing以图搜图详解

用户可以使؜用一张图片来搜索相似的图片,相比传统‌的关键词搜索,能够更精确地找到与上传‍图片内容相似的图片。这个功能也经常应用到购物场景,查询相似的商品 为了获得更多的搜索结果,我们的需求是从 全网搜索图片,而不是只在自己的图库中搜索。主要有 2 种方案:1.第三方 API 2.数据抓取(爬虫) 如果想从自建的图库中搜索,我们是需要建立数据集的,这个实现起来就比较麻烦了,因为以图搜图涉及一些比较复杂的算法。但是我们可以使用百度 AI 提供的图片搜索 API 参考官方

2025-09-14 11:37:22 2238

原创 轻松获取Bing高质量素材

在互联网上获取图片素材时,版权问题是必须高度重视的关键因素。绝大多数专业图片素材网站(如Shutterstock、Getty Images、视觉中国等)都对其平台上的内容实施了严格的版权保护措施。

2025-09-13 20:48:32 547

原创 Session与Cookie关系详解,解决方案Token

默认:session 信息通常存储在服务端内存中,适合单服务器环境。多服务器部署:内存存储会导致 session 不相通,需采用集中式存储(Redis、数据库)、sticky session、JWT 或 session 复制来解决。推荐方案:在现代分布式系统中,Redis是最常见的 session 存储方案,因其高性能和易用性;对于无状态需求,JWT也是热门选择。

2025-05-15 20:00:16 1697

原创 XXL-JOB 3.1.0 环境搭建及实现入门案例

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

2025-05-10 18:03:09 2585 1

空空如也

空空如也

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

TA关注的人

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