自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot 核心原理 + Spring 事务 + 缓存

AOP 面向切面编程,在不修改原有业务代码的前提下,对方法进行增强,抽取通用横切逻辑。事务管理(@Transactional 底层就是 AOP 动态代理)接口日志、请求耗时埋点权限校验、接口限流全局异常处理。

2026-08-19 11:08:08 241 1

原创 MySQL 底层 + 索引优化 + 分表 + Java 并发编程

短信日志天然按时间检索,优先时间范围分表;如果是用户交易类、主要按用户 ID 查询、查询很少按时间范围,才考虑 hash 取模分表。

2026-08-17 14:35:19 394

原创 RabbitMQ 全套复盘 + Nacos+ES+MyBatis-Plus 梳理

在短信项目里:上万条批量营销短信不会直接同步调用第三方通道,而是先丢进 MQ,消费者慢慢消费,防止瞬间流量打垮服务。

2026-08-15 14:05:47 326

原创 项目技术点总结--四大核心技术+缓存

内容;Seata AT、Sentinel、QLExpress、DockerCompose 四大核心技术 + Redis 底层、Caffeine+Redis 二级缓存、缓存三大问题。

2026-08-14 14:43:56 309

原创 Gateway 集成 Sentinel 实现后台全局 QPS 限流

作用:QPS 超出阈值时,网关直接返回固定 JSON,不转发下游服务/** 网关限流统一返回处理器 */@Component/*** 伪代码逻辑:* 入参:当前请求、限流异常信息* 出参:统一JSON提示*/@Override// 1. 封装统一返回对象result.put("msg", "后台访问繁忙,请稍后重试");// 2. 返回JSON格式响应说明:限流后的返回格式、提示文案、状态码,控制台只能开关规则,不能自定义返回 JSON 结构。分类。

2026-08-13 16:23:42 272

原创 分布式接口限流 + 分布式锁

限流本质:限制单位时间内接口访问次数,防止爬虫、批量请求、大促峰值流量打垮服务、第三方短信通道。分布式场景难点:多台服务集群部署,如果只做单机本地限流,每台机器独立计数,总流量会叠加超限,必须借助 Redis 实现全集群统一计数。不能只限制手机号,商户、IP、全局接口都要独立管控;不同维度负责不同防护目标。不同接口业务风险不同,验证码极易被刷,限制严格;营销短信是正常业务,限制宽松,不能一刀切设置相同阈值。

2026-08-13 11:45:46 377

原创 Agent智能体

Function Calling 核心是AI 主动调用后端 Java 业务接口,弥补大模型无业务私有数据的短板;@Tool注解封装业务方法 + 三层前置校验 + 异常兜底;适用场景:需要依赖数据库、外部接口数据才能完成 AI 生成的业务。Agent = 记忆 + 自主任务规划 + Function Calling 工具调用三者结合;核心优势:自动拆解多步骤复杂业务,无需人工分步下发指令;后端只负责工程封装、稳定性管控,底层智能调度交给成熟框架。

2026-08-12 15:14:49 848

原创 主流 AI 框架 + RAG 落地实战

ChatClient是 SpringAI 对外提供最高阶、业务层首选的对话客户端门面,底层封装ChatModel,把 HTTP 请求、报文组装、流式解析、异常、重试、提示词管理全部屏蔽,提供链式流畅 API,专门用来和各大 LLM 对话(通义千问、GLM、DeepSeek 等)。屏蔽各家大模型 API 差异,一套代码切换多款模型;链式 API 极简,省去手动封装请求头、JSON 实体、WebClient 流式代码;全局统一配置系统提示词、temperature、超时、重试;

2026-08-12 13:56:54 367

原创 Java 对接大模型基础

Token=AI 世界的流量,用来计费 + 限制对话长度。上下文窗口 = 单次对话最大记忆容量,超量会丢失早期需求约束。SSE 流式输出 = 分段实时返回内容,解决用户长时间空白等待问题,实时预览场景必备。模型幻觉 = AI 编造虚假业务规则 / 数据,会直接造成线上业务故障,必须额外校验规避。概念核心作用项目风险简单解决方案Token计费、限制文本长度商户调用成本过高缓存高频问答,减少重复调用上下文窗口存储对话历史记忆超长对话丢失早期约束定期清理无用历史对话SSE 流式输出。

2026-08-11 17:03:23 438

原创 场景设计专项:营销短信推送系统设计

整套系统完整设计链路:需求定义 → 五层代码分层 → 分布式技术栈选型 → 各中间件专项设计 → 全业务推送主流程 → 四大稳定性专项方案 → 数据库表设计 → 监控运维 → 分阶段扩容演进;所有中间件各司其职,互相配合解决高并发、重复消息、消息丢失、服务故障四大线上核心痛点;整套架构设计思想:异步解耦、分层隔离、冷热分离、多级兜底、可观测、平滑扩容。

2026-08-11 10:53:21 415

原创 专项2:项目性能优化&可量化指标

业务承载:日短信推送量从 10 万条提升至 1000 万条,并发承载能力扩大 10 倍;性能指标:全链路接口平均响应 320ms 优化至 62ms,整体性能提升 80.6%;稳定性:缓存雪崩、通道故障、重复短信、数据库 IO 打满、频繁 GC 等线上故障全年清零;服务可用性:系统全年可用率达到 99.99%;运维效率:配置修改、环境搭建、故障排查、任务发布全流程运维效率大幅提升,人工维护成本显著下降。

2026-08-11 10:17:34 499

原创 专项1:千万级短信推送项目难点复盘

改造前后奶茶店整体对比:改造前:高峰期挤爆、重复送单、经常丢单、记账卡顿、配送员罢工就全部停业,客诉多、成本高;改造后:上万单平稳承接,不会重复送奶茶,漏单极少,某个配送员出事自动换其他人,记账不耽误接单,客户投诉几乎清零,人力与物料成本大幅下降。

2026-08-10 15:17:24 530

原创 项目架构完整梳理--智能营销分布式平台

基于单体单机营销系统存在的各类性能、稳定性缺陷,完成整套分布式微服务架构改造后,在高可用、并发承载、运维效率、数据准确性等多维度获得明显提升,下面从业务、性能、稳定性、工程运维四个维度总结改造成果。

2026-08-10 11:08:11 364

原创 分布式 CAP、BASE 理论 & 中间件 CAP 取舍

同一时间,集群所有节点读取到的数据完全一样。执行写操作后,必须等全部节点数据同步完成,才允许对外提供查询。客户端任何时候发请求,都能收到正常响应,不会超时、拒绝服务;单个节点宕机,整个集群依旧能正常使用。分布式系统多机器、多机房部署,节点之间网络延迟、断网、丢包是一定会发生的客观现象,。

2026-08-10 10:23:02 776

原创 日志规范 & ELK 日志检索架构

三层固定流程:Input 输入 → Filter 过滤清洗 → Output 输出Input:接收各类日志来源(FileBeat、Redis、文件)Filter 核心:grok 正则拆分日志字段、脱敏手机号、丢弃 DEBUG 垃圾日志、统一时间格式Output:把处理干净的结构化日志写入 Elasticsearch,按天自动分索引Elasticsearch(E/ES):日志存储 & 检索引擎底层依靠倒排索引,海量日志毫秒级模糊、精准、多条件查询分布式集群,分片 + 副本机制保证日志不丢失;

2026-08-09 15:29:50 623

原创 JVM基础2:OOM内存溢出排查、简单调优参数

收集器侧重点STW 长短堆内存适配企业使用现状Serial极简、小内存很长几百 M 以内淘汰Parallel吞吐量优先较长中小堆离线批处理CMS低延迟较短4G 以内中小堆逐步淘汰G1可控停顿 + 大堆均衡短且可预估4G~16G 主流线上主流首选级别等级故障表现响应时效P0致命故障服务频繁崩溃重启、集群大面积不可用、大量消息丢失5 分钟内介入处置P1严重故障半数节点卡顿、大量请求超时、消费堆积、Full GC 频发10 分钟内介入P2。

2026-08-09 11:19:40 357

原创 JVM基础1:内存区域、GC垃圾回收算法

JVM 运行时数据区分为两类,核心区别:是否每个线程独立拥有内存、是否容易产生 OOM。

2026-08-08 16:30:21 368

原创 链路追踪 SkyWalking 基础 + 分布式接口超时排查

自定义阈值(例:接口总耗时超过 800ms 标记为慢 Trace),所有慢链路单独归档展示。整条分布式链路无需手动埋点,网关、Feign、MySQL、Redis 全部自动采集依靠全局 TraceId 串联多服务日志与链路,不用逐个登录服务器翻查日志瀑布图直观区分网关、远程调用、数据库、缓存各层耗时,快速定位性能瓶颈。

2026-08-07 15:56:59 485

原创 OpenFeign远程调用、超时、重试、负载均衡

RestTemplate 缺点地址硬编码,下游服务扩缩容要改代码重启;无统一拦截、日志、重试能力,重复代码多;负载均衡配置麻烦,容易遗漏导致单点故障。OpenFeign 优势声明式接口编程,代码简洁易维护;原生配套负载均衡、拦截器、日志、重试全套能力;统一处理跨服务 Token 透传,解决鉴权失效问题。传参注解使用场景请求方式Feign 重点坑点传递 DTO 对象POSTGET 不能使用,注解不能省略url?key=value 简单参数GET/POST。

2026-08-06 15:58:09 731

原创 Spring Cloud Gateway网关:路由、全局过滤器、限流

网关是,前端所有请求不直接调用后端服务,全部先走网关,再由网关转发到对应的业务微服务。我们短信项目中:前端获取验证码、营销活动、客户管理请求,统一进网关,再分发给短信服务、活动服务、用户服务。

2026-08-06 11:25:39 406

原创 微服务Nacos深度:注册中心、配置中心集群

MySQL 故障应急方案:可临时切换单机 Derby 模式只读运行,禁止新增 / 修改配置,优先保障业务正常调用,尽快修复 MySQL 数据库。小区有 3 个驿站(Nacos 3 台集群节点),分别是 1 号、2 号、3 号驿站,负责登记所有外卖小哥(微服务实例)。持久任务服务、读写配置 = CP,无需手动指定一致性模式,由实例类型自动切换。银行 3 个窗口(3 台 Nacos 节点),客户修改存款配置 / 定期任务登记(配置、持久实例)。分布式系统只能二选一:AP 或者 CP,不可能三者同时满足。

2026-08-05 14:53:34 380

原创 中级核心技术1--MySQL/Java 并发

MVCC 多版本并发控制,是 InnoDB 实现读写不阻塞的核心机制。查询操作不加锁,通过保存数据历史版本,读操作读取快照版本,写操作操作当前最新版本,解决读写互相阻塞问题,支撑四种事务隔离级别。优先选 ArrayList:查询遍历多、尾部新增多,极少中间 / 头部插入删除(日志列表、数据缓存等场景)。优先选 LinkedList:高频头部、尾部频繁增删,查询下标访问少的场景。补充误区:LinkedList中间插入并不快,耗时主要消耗在遍历定位节点。

2026-08-05 11:42:37 291

原创 MinIO 纠删码机制

概念符号含义说明数据块D(Data)原始文件切分出来的真实内容分片,直接拼接就能还原文件校验块P(Parity)通过 RS 算法数学运算生成的冗余分片,不存原始文件内容,用于故障恢复数据块数量K一份文件被切成多少个数据分片校验块数量M生成多少个校验分片总分片数K + M一份文件最终分散存储的分片总数 = 需要的磁盘数量最大可丢失分片数M最多允许一共丢失 M 个分片(D 和 P 都算,累加计数)最低存活分片数K。

2026-08-04 17:08:33 411

原创 线上故障专题2:缓存雪崩、接口超时、数据库死锁

没超时 → 线程卡住;下游慢 → 卡住的线程越来越多;没隔离 → 慢请求占满全部线程;没熔断 → 持续重试无限放大故障 → 最终服务整体雪崩。根因分类核心原理线上直观表现最终引发后果对应解决方案未设置接口调用超时HTTP、Feign、Redis、JDBC 全链路无超时限制,请求无限等待下游慢时线程永久卡住,永不释放线程池被慢请求逐步耗尽,整体服务雪崩全链路统一配置合理超时时间,到期主动中断释放线程下游服务性能瓶颈第三方渠道拥堵、MySQL 慢 SQL、Redis 网络延迟,下游响应变慢。

2026-08-04 14:57:22 612

原创 线上故障专题1:MQ消息堆积完整处理流程

一套独立开发的程序脚本 / 独立消费者服务,创建全新独立消费分组,专门消费队列中长期积压的历史存量消息,不和线上正常消费组争抢资源。

2026-08-04 10:47:47 553

原创 高并发活动架构整体梳理

营销秒杀、限时优惠券、限时短信福利、限时抽奖等活动,短时间涌入数万 / 数十万用户同时发起请求,瞬时流量暴涨。若架构无分层流量管控,极易出现接口雪崩、数据库卡死、服务宕机、活动无法正常开展。核心五大架构目标:层层拦截无效流量、保护核心服务、削峰异步处理、分摊数据库压力、故障隔离不全局崩溃。

2026-08-03 15:59:02 355

原创 短信接口防刷、限流

拦截发生在客户端,无效请求不会到达后端,完全不占用服务器、Redis 资源;开发简单、实现成本极低,页面一行组件即可接入;提升用户体验,避免用户重复点击后收到多条短信造成困扰。

2026-08-03 14:10:06 593

原创 JWT 鉴权

是 Java 提供的线程本地存储工具,作用:给每一条独立线程开辟一块专属存储空间。多线程环境下:线程 A 存的数据,只有线程 A 能读取;线程 B 完全看不到、访问不到,线程之间数据隔离,互不干扰。生命周期:跟随当前请求线程,请求处理完毕、线程回收后,数据自动失效。ThreadLocal = 单请求线程的临时储物盒,存登录用户信息方便全链路取用;使用完必须清空,否则线程池复用会造成账号串号漏洞。

2026-08-03 10:45:50 438

原创 全局统一返回ResultVo、参数校验

代码冗余繁杂,大量重复判空、格式判断;校验规则分散,维护成本高,改一处多处同步;人工校验容易缺失边界判断,产生非法数据入库风险;错误提示不统一,无标准化返回结构。// 自定义业务异常,携带错误码、提示信息super(msg);// getter// 重载构造,直接接收枚举存错误文案和编码的字典;传递错误信息的载体;接收异常、统一返回格式的处理中心。ResultVo 统一返回:规范所有接口输出格式;

2026-08-02 14:21:38 368

原创 MinIO

定位:兼容 S3 协议的自研部署式对象存储,统一管理图片、海报、素材;两层结构:Bucket 业务隔离桶 + Object 单个文件对象;核心能力:分片上传、多副本备份、生命周期清理、私有预签名 URL、集群横向扩容。

2026-08-02 10:12:56 162

原创 定时任务集群解决方案

多台业务服务器同时部署相同定时任务代码,用来执行营销短信推送、数据统计、账单生成、黑名单清理等定时业务;集群场景下必须做调度管控,保证同一时刻只有一台机器执行目标任务,规避重复执行带来的业务损失,这类定时调度统称为分布式集群定时任务。

2026-08-01 15:32:30 357

原创 分布式 ID

分布式系统全局唯一主键,用来替代单库自增 ID。

2026-08-01 10:51:13 376

原创 高频知识点

MySQL 层面:合理设计联合索引,深分页用游标分页,大表结合 ES 检索并发层面:IO 密集型线程池配置 2N+1,搭配安全拒绝策略缓存层面:解决穿透、击穿、雪崩,保证缓存高可用数据安全:三层幂等防止重复发短信、重复建活动事务层面:规避事务失效问题,保证批量数据一致性。

2026-07-31 17:07:00 244

原创 接口幂等全套解决方案

登录 Token:身份通行证,长期复用;幂等 Token:单次操作防重复凭证,一次性销毁。

2026-07-31 15:21:09 311

原创 缓存三大问题

大量请求查询数据库的数据,Redis 找不到对应 key,缓存无法命中,请求全部穿透到 MySQL,数据库压力持续上涨,严重造成数据库 CPU 打满。典型场景:恶意传入负数商品 ID、不存在编号、乱参数攻击接口。

2026-07-31 14:35:23 310

原创 Spring 事务传播机制 & 事务失效场景

默认传播行为是 REQUIRED,日常增删改业务首选;REQUIRES_NEW 适合日志、记录类隔离场景,事务完全独立;NESTED 用于批量局部回滚,依赖数据库保存点;SUPPORTS 适配查询,NOT_SUPPORTED 用于大数据导出;MANDATORY、NEVER 多用于底层约束校验,业务开发很少用。七大事务失效场景高频事务失效三大场景:this 同类调用、非 public 方法、异常被捕获不抛出;默认仅回滚运行时异常,业务统一添加;

2026-07-29 11:13:59 374

原创 SpringBoot 核心原理

正常无异常: @Before → @Around 执行目标方法前 → 目标方法运行 → @Around 执行后 → @AfterReturning → @After方法抛出异常: @Before → @Around 执行目标方法前 → 目标方法报错 → @AfterThrowing → @After。

2026-07-28 12:20:46 344

原创 并发编程:线程池、volatile、synchronized

仅状态标记、无并发修改 → volatile共享变量多线程读写、计数同步 → synchronizedIO 密集批量任务控制并发 → 自定义 ThreadPoolExecutor高并发计数场景 → LongAdder(性能优于 synchronized 同步变量)

2026-07-27 16:51:10 358

原创 Java 集合底层

所有 Set 底层都是包装 Map,利用 Map key 不可重复的特性实现元素去重。集合体系有序性元素重复性访问特点典型实现类List有序可重复支持下标索引,随机访问快SetHashSet 无序 / TreeSet 有序不可重复无下标,依靠哈希 / 比较器匹配Map无序key 不可重复,value 可重复键值对存储,通过 key 找 valueHashMap、ArrayList、HashSet 均非线程安全,多线程环境禁止直接使用。

2026-07-24 15:58:10 307

原创 MySQL 实战调优& 分表基础

如果已经存在联合索引(a,b,c),那么单独建立的索引(a)就属于冗余索引。联合索引最左匹配原则,(a,b,c)本身就能单独命中 a 字段查询,额外建单列 a 索引完全重复,无作用。

2026-07-24 10:54:10 310

空空如也

空空如也

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

TA关注的人

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