- 博客(78)
- 收藏
- 关注
原创 个人体验:从零构建高可用 Multi-Agent 架构与实战避坑指南
AI 模型在多轮交互中天然是“近视”的。如果它查了 10 个文件,在最后一步触发时,它往往只会汇报第 10 个文件的结果。解法:追加一轮“述职汇报”。Javai < 15;i++) {// 执行一轮 Think→Act→Observe// 无论是检测到结束标记,还是常规迭代结束,统一进入 requestFinalSummarynextPrompt = "请继续执行任务。// 强制逼问,榨干前置上下文subLoop.processInput("请输出完整总结,涵盖每一步的关键发现。
2026-05-20 22:47:45
921
1
原创 从“接口能用”到“能力可复用”:一个中台实习生的前两章读书笔记
阅读范围:《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》第一、二章。文中的工作背景来自我参与的供应商中台项目,已做匿名化处理;补充案例会明确标为假设,个人理解不等同于原书结论。
2026-10-21 14:08:40
70
原创 拒绝盲目用 Redis Set!千万级高并发点赞系统的架构演进与落地实践
通过随机 Hash 分桶破除写瓶颈,通过异步汇总 + 主 Key 读写分离解决读放大。:基于实现空间极致压缩与 $O(1)$ 级别的高效判重。持久化落盘:借助Kafka 削峰Worker 内存微批聚合保护数据库,通过离线对账保证数据的最终一致性。掌握了这套系统演进逻辑,再面对类似的高并发计数、限流或海量状态标记场景时,自然能够从容应对,设计出具备极高伸缩性与容灾能力的后端架构。
2026-08-06 09:34:07
374
原创 一行 FOR UPDATE 能替代 30 行重试逻辑吗 —— 会话编号生成的并发治理
在并发下不是原子操作 → JMeter 5 线程复现了 20% 的成功率。乐观重试在 REPEATABLE_READ 下触发间隙锁死锁 →定位到 supremum 伪记录。FOR UPDATE当前读 + 排他锁串行化 → 一行代码替代 30 行重试,成功率 20% → 100%。代码改一行,功力藏三年。这行的背后,是 InnoDB 锁机制的完整理解、JMeter 并发测试的工程实践、和方案选型的 tradeoff 判断。
2026-07-27 13:52:34
322
原创 手写 LRU 缓存?别慌,带你图解 LinkedHashMap 的底层魔法
日常开发中,只要提到键值对存储,大家闭着眼睛都会。毕竟它的查找和插入速度几乎无敌,时间复杂度逼近 O(1)。但HashMap如果业务场景要求“怎么存进去的,就怎么取出来”(比如渲染有序菜单、记录任务先后顺序),该怎么办?今天,我们要请出 Java 集合框架里的隐藏大佬——LinkedHashMap。
2026-07-15 10:50:37
326
原创 从一道图论题,挖出 Java Collections.binarySearch 的底层设计美学
i从一道图论连通性判断题,到利用空间换取时间的区间切分思想,再到利用补码特性优雅还原二分查找插入点的一行代码。我们看到了算法思维的灵活转变,也窥见了 JDK 源码底层对于信息复用和消除歧义的极致追求。下次当你再写出~i的时候,也许你会想起这背后精巧的数学魔法。
2026-07-09 17:06:26
385
原创 别把服务器内存撑爆了!一套带你搞懂 MinIO 架构与高阶直传玩法
对比维度常规后端二传手(流转交)前端直传(Presigned URL 签名)数据流向前端 -> Spring Boot 内存 -> MinIO前端 -> MinIO(彻底绕过 Spring Boot)Java 堆内存压力极大(极易引发 OOM)几乎为零(只处理短短一条字符串)网关带宽占用占用业务服务器双倍带宽业务服务器零带宽占用安全控制后端在 Controller 层拦截硬编码依赖预签名 URL 的过期时间与密码学校验适用场景必须在后端实时处理(如压缩、加水印)的小图片。
2026-07-06 21:31:12
201
原创 别把法拉利当拉煤车!游戏后端海量图片与视频到底该怎么存?
面试官如果问起:“你们项目中那么多图片是怎么存的?为什么?存储方案核心角色优势致命缺陷昂贵的法拉利不需要引入第三方技术栈拖垮内存、榨干连接池、搞崩主从同步OSS + CDN顺丰包仓 + 极速达业界首选,天生高并发,体验最丝滑流量费按量计费,需严防恶意盗刷纯前端打包自带干粮的背包开发简单,读取零延迟包体积臃肿,热更新极其困难私人自建大仓库数据绝对可控,无公有云流量费需专人进行集群运维和灾备兜底一句话总结让数据库干它该干的事,专注于高并发的事务处理与索引检索。
2026-07-06 20:44:35
457
原创 跨越软硬件的共鸣(二):从 Cache 写策略看 Redis 与 DB 的一致性博弈
从主板上的 SRAM 芯片,到横跨多个机房的分布式缓存集群;从掩盖内存延迟的几十 KB “写缓冲”,到承载亿级流量的万兆“消息队列”。技术的外延在不断膨胀,但架构的内核却始终如一。无论是 CPU 架构师还是 Java 后端工程师,面对“多级存储的一致性与性能博弈”,最终给出的答案,都在历史的长河中遥相呼应。
2026-06-14 12:48:47
408
原创 从底层硬件到高并发架构:全景解析 Cache 替换算法与 Redis 近似 LRU 策略
从 CPU 内部为了几十 KB 空间精打细算的硬件计数器,到 Redis 为了千万级吞吐量挥刀斩链表的近似抽样算法。在资源匮乏的缓冲层,LRU 和局部性原理始终是数据的最高法则;而在真实的工业落地中,基于概率与采样的“工程妥协”,往往比死板的严谨更具智慧。
2026-06-14 12:29:48
408
原创 剥洋葱式推演:一步步彻底搞懂 Redis 的 I/O 多路复用
让我们把完整的逻辑链串起来: 为什么 Redis 单线程能抗住高并发?因为它绝不把时间浪费在“等待网络传输”上。它通过I/O 多路复用(epoll,让操作系统充当大管家,代替它监控成千上万的连接。只有当数据真的到了网卡、准备就绪时,才会排成队列交给单线程处理。单线程省去了所有的上下文切换和锁竞争,以纯内存的速度执行完毕,从而实现了看似违背常理的极致性能。
2026-06-09 19:55:47
315
原创 Redis 架构进阶:全景解析 RDB、AOF 与混合持久化机制
特性评估RDB (快照模式)AOF (追加日志)混合持久化 (现代标配)文件结构二进制(极度紧凑)文本命令日志二进制头部 + 文本尾部重启拉起速度极快⚡️较慢 🐢极快⚡️数据安全性较低(随快照周期而定)极高(最多丢 1s)极高(最多丢 1s)适用业务场景全量容灾备份、非核心缓存池财务/订单等核心不可丢数据线上生产环境首选在架构设计中,持久化机制的选择本质上是在“磁盘 IO 性能”、“内存资源占用”以及“数据可靠性”之间寻找平衡点。
2026-06-09 19:44:59
219
原创 黑马点评复盘
在传统的单体应用中,我们习惯把用户登录状态存在 Tomcat 的 Session 里。但这就像办了一张“单店会员卡”,一旦你的服务扩展成集群,用户被负载均衡路由到另一台机器,状态就丢失了,导致用户频繁掉线。解决方案与落地痛点: 为了解决集群下的状态失效,我们把登录信息抽离出来,存到独立的 Redis 空间中。这就像把单店系统升级成了云端的“全国一卡通”。第一步是发送验证码:校验手机号后生成6位随机码,以 phone 为 key 存入 Redis 并设置有效期。第二步是登录校验:拿用户输入的 code 与 R
2026-06-07 20:15:45
350
原创 探讨 AI 自我迭代的边界:Anthropic “暂停”呼吁背后的技术隐忧与博弈困境
文章指出,目前阻止 AI 实现完全自主研发的关键在于,它依然缺乏人类顶尖科学家的“研究品味”——那种能够在无数未知方向中,凭借直觉和经验选择正确技术路线的能力。人类目前依然在系统中扮演着“掌舵者”的角色。综合来看,Anthropic 的《When AI Builds Itself》为我们提供了一份极具价值的未来推演报告。它提醒整个行业,在追逐算力与参数规模的同时,绝不能忽视底层对齐技术(Alignment)的研究。但在现实的竞争规律下,大模型的研究大概率不会停止。
2026-06-06 17:24:51
538
原创 撕开 Spring 的底裤:解析 Bean 生命周期与三级缓存的“破局”之术
从一行简单的@Autowired,到背后精密的四段式生命周期,再到解决循环依赖的三级缓存。Spring 用极其优雅的代码结构,向我们展示了什么是顶级的系统解耦与状态机管理。记住,缓存的本质是空间换时间,而三级缓存的本质,是利用“提前暴露”打破因果死锁,并巧妙兼顾了 AOP 的侵入逻辑。搞懂了这套机制,Spring 的底层源码对你而言,将不再有秘密。
2026-06-06 17:13:46
344
原创 剥开大模型的黑盒:从“概率预测机器”到“人类价值观容器”的演进与标注法则
大模型的智慧,源于硅基芯片对海量数据的暴力压缩;但大模型的“灵魂”,则来自于碳基生物在后训练阶段的精心雕琢。从数据收集、分词、神经网络概率预测,到最后的人类反馈强化学习。正是这一套精密咬合的齿轮,让那些漂浮在互联网上的零散字节,最终汇聚成了今天这个能够与我们进行思想共鸣的 AI 助手。
2026-06-03 22:22:54
869
3
原创 跨越“拟人”的最后一道天堑:大模型强化学习(RLHF/RLAIF)底层原理解析
语言充满了开放性。比如问“如何向 5 岁小孩解释量子力学?”,这里没有绝对的“正确答案”,只有“啰嗦的答案”、“学术的答案”和“生动有趣的答案”。SFT 只能让模型模仿人类的语气,而。
2026-06-03 21:54:32
332
3
原创 从“野生文本模拟器”到“全能 AI 助手”:一文拆解大模型训练的两极世界
从零散的 UTF-8 字节,到 15 万亿词元的吞噬;从无意识的下一个词概率预测,到贴心、友好的全能助手。大模型的智慧,并非魔法。它的底层是一套基于统计学的马尔可夫链式预测,而它的上层,则凝聚了数以万计的人类标注员在后训练阶段为它注入的“价值观”。在这场硅基与碳基的交响乐中,我们共同见证了新时代生产力的诞生。
2026-06-01 21:24:09
404
原创 从繁琐到极简,从幻象到本质:Spring AOP 架构演进与实战避坑指南
为了消灭“强侵入”和“类爆炸”,Spring 2.0 时代引入了纯 XML 配置模式。彻底抛弃 Spring 接口!你只需要写一个极其普通的 Java 类(POJO),把前置逻辑和后置逻辑写成里面的两个普通方法。然后在巨大的 XML 配置文件中,通过标签,手动把这些方法与目标类的切入点“缝合”起来。类的数量减下来了,但 XML 变得臃肿不堪。每次修改方法名,都要在 Java 代码和 XML 之间来回跳转,重构极易出错。
2026-05-31 21:36:07
261
原创 从手写代码到内存“无中生有”:硬核拆解 Java 静态代理与动态代理的架构演进
从手写繁琐的 XML 和静态代理类,到走向动态代理的无中生有,代理模式的演进本质上是“控制权从编译期向运行期”的全面移交。静态代理把结构写死在代码里,换来的是极致的直观,输掉的是灵活性;JDK 动态代理通过接口欺骗和反射,在运行时解放了重复劳动力;CGLIB 则通过底层的字节码操纵进行高空作业,用继承拓宽了代理的物理边界。只有自底向上地看清这些技术在内存中的演进状态,我们在面对 Spring AOP、各类拦截器和分布式微服务的网络调用时,才算真正握住了掌控底层状态机的钥匙。
2026-05-30 22:08:41
523
原创 从拦截洪峰到优雅兜底:微服务 Sentinel 核心原理与实战全指南
真正的架构师懂得,高可用架构的本质是一场关于“妥协”的艺术: 为了保住核心业务链路,我们用限流妥协了部分瞬间涌入用户的体验;为了保住整个微服务集群的存活,我们用熔断妥协了局部的边缘功能。而在这一切背后默默计算阈值、拦截请求的,是 Sentinel 的底层机制;而用温馨的提示和异步补偿逻辑安抚用户的,是我们写下的那一层层优雅的兜底降级代码。两者合一,才是真正的微服务高可用。为了直观体验这套“防御+兜底”组合拳的威力,我为你准备了一个架构级模拟器。
2026-05-30 16:35:05
341
原创 惊鸿一瞥:从Claude源码看顶级 AI Agent 的系统架构
Anthropic 的这次源码泄露,不经意间拉平了 AI 行业的认知差。它无情地撕破了那些鼓吹“只要 Prompt 写得好,Agent 就能跑起来”的伪工程学说。在生产环境中,大模型本身的智力只是那颗 1.6% 的“心脏”,而让它稳如泰山、能干脏活累活的,是外围那 98.4% 坚如磐石的确定性系统工程体系。用坚固的文件树做骨架,用细粒度的工具网关做免疫系统,用无情的压缩管道保护脑容量。让模型在极端受限但绝对安全的轨道里发挥聪慧,这才是工业级 AI Agent 架构的终极奥义。
2026-05-28 22:53:02
1229
原创 告别满屏的 URL 拼接:一篇文章带你彻底搞懂 OpenFeign
OpenFeign是一个声明式的 Web 服务客户端。什么是“声明式”?你只需要声明你想要什么,不需要关心底层是怎么做到的。在 OpenFeign 的世界里,你不需要写任何发送 HTTP 请求的具体代码。你只需要定义一个Java 接口,然后在接口上打上 Spring MVC 的注解(比如),告诉 Feign 这个接口对应远程的哪个 HTTP 路由。Feign 会在底层自动利用动态代理为你生成实现类,并完成 URL 拼接、序列化、发送请求等所有脏活累活。
2026-05-27 20:26:19
356
原创 微服务架构的“动态遥控器”:一篇文章彻底搞懂 Nacos 配置中心与实战
你可能会好奇,Nacos 是怎么做到热更新的?难道是客户端一直在死循环发请求问服务端“配置变了吗”?其实,Nacos 2.x 底层使用了基于gRPC 的长连接。客户端会与 Nacos 服务端建立一条常驻的 gRPC 通道。当我们在控制台修改配置并发布时,服务端会主动顺着这条长连接,将变更事件推送(Push)给客户端。客户端收到事件后,Spring 框架底层的机制被触发,销毁带有注解的旧 Bean,并利用新拉取的配置重新实例化一个新 Bean。
2026-05-25 16:27:57
373
原创 微服务寻址的“智慧大脑”:一篇文章彻底搞懂 Nacos 注册中心与实战
在云原生时代,服务的容器会频繁地销毁、重启、漂移,IP 地址变得像流水一样不可靠。引入 Nacos 这样的注册中心,本质上是增加了一个中间抽象层,用逻辑概念(服务名)解耦了物理概念(IP + 端口)。理解了这一点,你就真正推开了微服务架构的大门。
2026-05-25 16:22:03
592
原创 从底层 CPU 架构看透现代分布式与并发编程
试图打造更强壮的单一节点。发现同质化任务可以由“一个大脑,多手多脚”来暴力拆解。任务复杂后,让多个大脑围着同一块黑板(共享内存)干活,却发现黑板前挤满了人,冲突不断。给每个人发一个小黑板,让他们坐回自己的工位。有事通过打电话(网络通信)来沟通。打电话虽然有网络延迟开销,但这彻底解除了物理资源的深度耦合,是唯一能实现无上限水平扩展(Scale-Out)的光明大道。
2026-05-24 14:21:54
429
原创 从 CPU 硬件多线程的“第一性原理”看透 Java JUC
剥开高级语言优雅的语法糖,Java 并发编程的种种设计模式,其最终目的都是为了迎合硅片内部的物理法则。为了避免粗粒度的高昂代价,我们用非阻塞 I/O 替代阻塞 I/O;为了发挥细粒度的切换优势,我们用 CAS 自旋和虚拟线程榨取低延迟;为了填满SMT的多路发射器,我们用 ForkJoin 模型拆解任务。当我们能够自上而下地贯通 JVM 源码与底层体系结构,并发编程就不再是死记硬背的八股文,而是精密的工程美学。
2026-05-24 14:05:21
375
原创 讲透分布式系统的演进史与核心架构
从单体架构到分布式微服务,这并不是技术的无病呻吟,而是被业务规模逼出来的生存进化。分布式系统本质上是一场“资源的拆分与重新连接”的游戏。它牺牲了单机系统的极简性,引入了复杂的网络延迟、分布式事务、缓存一致性等噩梦级难题,但换来的,是能够承载数亿用户、永不停机、坚如磐石的现代数字基础设施。
2026-05-22 21:31:36
354
1
原创 AI 架构的文艺复兴:用操作系统“内存管理”重构 LLM 状态机 —— 深度解密 Claude Code
高级的 Agent 工程,本质上是数据结构与操作系统算法在 AI 领域的降维应用。在这个范式下,我们必须扭转思维: 不要再试图用无限拉长的 Prompt 去解决所有上下文问题。请让 LLM 成为纯粹的 CPU 控制器(Control Unit),把复杂的状态维护与持久化,交给文件系统这个“硬盘”,用工具调用(Tools)去构建连接它们的 I/O 总线。
2026-05-21 22:51:24
491
原创 孤胆英雄的黄昏,社会化智能的黎明:一文看透 Multi-Agent 架构底层逻辑
人工智能先驱马文·明斯基(Marvin Minsky)在 1986 年写过一本旷世巨著《心智社会》(The Society of Mind)。他提出,人类的智能本身并不是由一个单一的“超级中心大脑”产生的,而是由无数个极其简单的、只懂一件事的微小智能体(Agents)通过复杂的协作和竞争涌现出来的。四十年前的理论,在今天大语言模型的演进中得到了最完美的印证。Multi-Agent 的本质,就是承认单体大模型的局限性。
2026-05-20 22:36:15
548
原创 扛住十万并发的“冷面保安”:一文扒透限流的四大经典算法与代码实战
高并发架构没有银弹。如果你要保护的是绝对不能承受突发压力的老旧底层数据库,选漏桶。如果你要保护的是对外暴露的 Web API 接口,希望在平时平滑限制,偶尔遇到大促又能扛住一波突发的积攒流量,果断选令牌桶。认清每种算法的脾气,才能给你的服务器配上最合适的“冷面保安”。
2026-05-19 14:49:57
512
原创 如何扛住十万级流量洪峰?扒开高并发架构的五层防御体系
所谓的高并发架构,其实从来没有什么神奇的黑科技,它的本质是一场“资源的调配与妥协的艺术”。为了保护系统的存活,我们妥协了体验,引入了限流与降级。为了化解瞬时的洪峰,我们妥协了实时性,引入了MQ 异步削峰。为了极致的读取速度,我们妥协了强一致性,引入了多级缓存。当你在键盘上敲下每一行代码,设计每一个架构图时,请脑补出那十万并发流量在网线中呼啸而过的画面。理解了这五层防御体系的物理意义,你才能在真正的流量洪峰到来时,稳如泰山。
2026-05-19 14:24:59
641
原创 告别阻塞与回调地狱:用 CompletableFuture 构建动态回调枢纽
在复杂的分布式系统中,数据的获取早已不再是线性的,而是网状的。传统的Thread和Future只解决了“并发执行”的问题,却把“结果收集与流转”的烂摊子留给了开发者去用阻塞的方式硬扛。而 CompletableFuture的本质,就是一个自带状态机、内置了回调注册表的并发编排枢纽。它将 Java 的多线程编程从“手工拉纤”的时代,直接跨越到了“自动化流水线”的时代。下次遇到复杂的接口聚合、并发依赖调度,不要再下意识地去写或是循环了。试着把逻辑抽象成一张有向无环图(DAG),然后用将它优雅地表达出来吧!
2026-05-18 15:11:34
338
原创 AI Agent 架构里的隐形杀手:MCP 协议下 ProcessBuilder 的 64KB 死锁陷阱
软件工程界有一句名言:“所有非平凡的抽象都会泄露(All non-trivial abstractions, to some degree, are leaky)。Java 的给我们提供了一个极其简单的“流”抽象,屏蔽了底层的操作系统机制。但在高并发和大数据量的 AI 架构中,底层的 64KB 缓冲区依然无情地刺穿了这层抽象。对于真正的后端架构师来说,只有懂得往下看透物理底层,才能往上写出坚不可摧的业务代码。
2026-05-16 21:29:17
667
原创 代码空间的“无中生有”:聊聊Java 动态代理的底层原理
从手写繁琐的静态包装,到运行时生成接口的实现,再到突破接口限制生成子类,最后达到无实体调用的境界。Java 的动态代理技术,完美诠释了什么是“在更高维度解决系统耦合理解了它,你就不再是只能堆砌业务逻辑的码农,而是触摸到了现代软件工程架构底层脉络的创造者。
2026-05-14 23:03:41
375
原创 别让大模型只会“纸上谈兵”:扒开 Agent Skills 的底层逻辑与装配艺术
在前两篇文章中,我们探讨了 Function Calling(让大模型能输出标准指令的“通信协议”)和 Harness(包裹大模型、控制物理交互的“机甲外骨骼”)。现在,你的大模型已经不再是一个被困在黑暗房间里的“缸中之脑”了。它穿上了 Harness 这套钢铁侠战衣,拥有了与外界通信的能力。但是,这套战衣现在是的。它没有装配任何武器,也没有导航雷达。当用户说“帮我把昨天崩溃的服务器重启一下”时,大模型只能在战衣里干瞪眼。。
2026-05-12 22:31:42
415
原创 从马具到 AI 智能体的“外骨骼”:扒开 Harness 的底层进化史
从马背上的皮带,到机房里的线圈;从保护代码的测试桩,到控制 AI 智能体的机甲。剥开层层迷雾,你会发现Harness的本质从未改变:它永远处于“核心实体”与“复杂外部世界”的交界处。它屏蔽混乱、提供接口、保障安全。无论是写业务代码,还是设计 AI 架构,理解并用好 Harness 这种“搭建脚手架”的工程思维,才是拉开普通程序员与顶尖架构师差距的核心关键。
2026-05-12 22:20:15
639
原创 别再把大模型当“缸中之脑”了:扒开 Function Calling(函数调用)的底层运行逻辑
不要被这个英文单词唬住了。在大白话里,Function Calling 就是一种让大模型和外部代码“按规矩对接”的通信协议。在过去,你给大模型一段文字,它返回给你一段文字。有了 Function Calling,你可以在提问的时候,顺便递给大模型一个“工具箱”(里面装满了你提前写好的函数说明书)。大模型在思考后,如果发现解答你的问题需要用到这些工具,它就不会直接回答废话,而是返回一段JSON 代码,告诉你:“兄弟,我算不出来,但请你帮我调用一下工具箱里的函数,参数传入城市:北京。
2026-05-11 10:57:32
1591
1
原创 穿透 MQ 专栏 (五):【终局之战】MySQL 和 MQ 的世纪联姻:扒开“分布式事务”的遮羞布
读到这篇大结局,你已经陪我走过了 MQ 架构中最泥泞的沼泽。我们用“削峰”保住了服务器的命,用“ACK与落盘”防住了消息丢失,用“状态机”杀死了重复扣款,甚至在百万积压的灾难中完成了一场教科书般的救火。可以说,在单节点系统和纯 MQ 领域,你已经是无敌的存在了。但是,当你回到工位,看着自己写下的那段最核心的“支付回调”代码时,你的背后突然感到一丝凉意。Java你以为加上了这个神圣的注解,就能保证这两行代码“要么全成功,要么全失败”。
2026-05-11 10:43:06
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅