- 博客(96)
- 收藏
- 关注
原创 什么是AI Agent
AI Agent 是让大语言模型从“回答问题”升级为“自主完成任务”的系统。它具备规划、调用工具(文件、终端、网络等)、记忆与自我纠错能力,通过“思考→行动→观察”的循环实现闭环执行。核心由模型、工具、记忆、规划机制与运行环境构成,典型如 Claude Code、Codex 等。其关键在于将“想”与“做”连接成完整流程,真正实现任务自动化。
2026-11-06 15:03:59
241
原创 SpringBoot Starter 依赖相关总结
假设我们要做一个Step 1:创建 autoconfigure 模块@Bean@DataStep 2:创建 starter 模块(空壳)</</</</</</</Step 3:注册自动配置类Step 4:使用</</</</my:redis:port: 6380Step 5(可选但推荐):生成配置元数据 metadata规范的 starter 会提供配置元数据,让 IDE 在里写my.redis.时能自动补全、提示类型和默认值。引入注解处理器(编译期自动从生成元数据):</</</
2026-08-25 11:04:10
373
原创 惊群效应(Thundering Herd)相关总结
惊群效应(Thundering Herd)总结 惊群效应指多个进程/线程同时等待同一资源,当资源可用时全部被唤醒,但最终只有一个能成功获取,其余都空转。典型场景包括Nginx的accept、Redis缓存击穿、并发锁竞争等,会导致CPU暴涨、性能下降。 解决方案基于四个方向: 互斥:如SO_REUSEPORT、EPOLLEXCLUSIVE、分布式锁 合并:如singleflight模式合并相同请求 随机化:jitter退避、随机TTL打破同步 排队限流:公平锁、MQ消费组 关键技术包括:内核级排他唤醒、语言
2026-08-24 16:35:31
360
原创 AI Agent 技术栈梳理(Skill / 蒸馏 / MCP / Harness)
本文系统梳理了AI Agent(智能体)的核心技术栈,重点解释四个关键概念:蒸馏(模型压缩技术,将大模型能力迁移到小模型)、Harness(智能体运行时框架,管理模型执行和工具调用)、Skill(模块化能力包,按需加载)、MCP(标准化协议,连接外部工具和数据)。这些概念构成了Agent的基础架构,其中Harness作为核心容器,Skill和MCP用于能力扩展,而蒸馏独立影响模型选择。此外,文章还概述了AI Agent的完整9层技术栈,涵盖模型、框架、记忆、工具、多智能体协作等维度,为理解智能体技术提供了结
2026-08-20 18:04:38
596
原创 Caffeine 缓存及其应用相关总结
) | 写入后固定时间后过期 | |expireAfterAccess(Dundering)| 最后一次访问后固定时间后过期 | |expireAfter(Expiry)` | 自定义过期策略(基于创建、更新、访问时间的灵活控制) | // 写入后 10 分钟过期 Caffeine.newBuilder() .expireAfterWrite(Duration.ofMinutes(10)) .build(); // 自定义过期(VIP 用户永不过期) Caffeine.newBuilder() .expir
2026-08-20 17:24:15
376
原创 本地模拟器结合Reqable实现抓包 安装与配置
本文介绍了使用MuMu模拟器结合Reqable抓包工具的安装与配置方法。主要内容包括:1)MuMu模拟器的安装与开发者选项配置;2)Reqable抓包工具的安装和权限设置;3)MT管理器的安装用于处理证书文件;4)Reqable证书的下载与移动配置;5)常见问题(如挂载读写失败、设备启动失败)的解决方法。通过这套工具组合,可以方便地抓取移动端应用的网络请求,查看接口参数,提升开发和调试效率。
2026-07-23 18:24:13
312
原创 Java逃逸与逃逸分析总结
本文介绍了Java中的逃逸与逃逸分析技术。逃逸指对象引用被传递到创建它的方法或线程之外,分为不逃逸、方法逃逸和线程逃逸三种情况。JVM通过逃逸分析进行优化,包括栈上分配、标量替换和同步锁消除,以提升性能并减轻GC压力。文章提供了代码示例说明逃逸场景,并详细讲解了相关JVM参数的配置方法,包括开启/关闭逃逸分析、锁消除和标量替换等。最后指出逃逸分析是JIT编译器的运行时优化,开发者了解其原理有助于编写更高效的代码。
2026-07-21 16:09:51
227
原创 滚动发布 蓝绿发布 金丝雀发布 A/B发布等相关总结
发布策略体系├── 按部署方式│ ├── 蓝绿发布 (Blue-Green)│ ├── 滚动发布 (Rolling Update)│ └── 重建发布 (Recreate)│├── 按流量控制│ ├── 灰度发布 (Grayscale)│ │ ├── 金丝雀发布 (Canary)│ │ ├── A/B测试发布 (A/B Testing)│ │ ├── 功能开关发布 (Feature Flags)│ │ └── 影子发布 (Shadow)│ └── 暗发布 (Dark Launch)
2026-01-16 17:57:00
732
原创 SpringCloud之Gateway
Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring CloudGateway 提供更优秀的性能,更强大的有功能。Spring Cloud Gateway 是由 WebFlux + Netty + Reactor 实现的响应式的 API 网关。它不能在传统的 servlet 容器中工作,也不能构建成 war 包。
2025-07-29 13:26:34
1191
原创 Spring Cloud Alibaba 之 Nacos
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,致力于简化云原生应用的构建与治理,相比其他注册中心Eureka,Consul更加强大。一句话总结:Nacos =注册中心配置中心动态 DNS服务治理的综合体。Nacos Server 必须独立启动,Spring Boot 不会内嵌它,不支持 Spring Boot 直接启动为注册中心,需要单独运行 Nacos Server。
2025-07-19 05:50:03
1055
原创 SpringCloud相关总结
https://blog.youkuaiyun.com/weixin_44958006/article/details/149274470?spm=1001.2014.3001.5501https://blog.youkuaiyun.com/weixin_44958006/article/details/149279384?spm=1001.2014.3001.5501https://blog.youkuaiyun.com/weixin_44958006/article/details/149280919?spm=1001.2014.3001
2025-07-18 16:58:23
507
原创 SpringCloud之Config
Spring Cloud Config 是 Spring 官方提供的 分布式配置中心 组件,用来 集中管理、动态下发、版本控制 所有微服务的配置文件,支持 Git、文件系统、Vault(什么是Vault?) 等多种后端存储。远程仓库(服务端)+(客户端),实现集中管理、版本控制、动态刷新的微服务配置中心。
2025-07-16 15:17:23
1001
原创 SpringCloud之Zuul
Spring Cloud Zuul 是 Netflix 提供的微服务网关核心组件,作为统一的 API 入口,承担请求路由、过滤、安全控制等关键职责。
2025-07-15 03:59:15
601
原创 SpringCloud之Hystrix
Spring Cloud Hystrix 是 Netflix 开源的容错库,用于解决分布式系统中的服务雪崩问题。它通过熔断、降级、限流等机制提升系统的弹性和稳定性。Hystrix 本质是分布式系统的“保险丝”,通过快速熔断故障服务 + 优雅降级保障核心链路可用性。尽管Hystrix 已停止更新(Netflix 进入维护模式),但其容错设计思想(如熔断状态机、资源隔离)仍深刻影响微服务架构。
2025-07-14 19:41:40
548
原创 SpringCloud之Feign
Feign是声明式HTTP客户端,专为微服务架构设计,用于简化服务间的远程调用,它让微服务之间的调用变得更简单,类似controller调用service。Feign,主要是社区版,大家都习惯面向接口编程。这个是很多开发人员的规范。微服务名字 【ribbon】接口和注解 【feign】
2025-07-11 19:02:18
452
原创 SpringCloud之Ribbon
Ribbon 是 Spring Cloud 微服务架构中实现客户端负载均衡的核心组件,由 Netflix 开源并集成到 Spring Cloud 生态中。它通过动态分配请求到多个服务实例,提升系统的可用性和性能。Ribbon 作为微服务架构的“流量调度器”,通过客户端负载均衡显著提升系统弹性。其核心价值在于:✅ 轻量集成:无需独立部署,与 Spring Cloud 生态无缝协作。✅ 灵活扩展:支持策略定制和容错机制。
2025-07-11 18:20:25
919
原创 SpringCloud之Eureka
Eureka 用于简化分布式系统的服务治理,基于REST的服务,用于服务的注册与发现。。其设计优先保障可用性(AP 模型),尤其适合云环境中动态伸缩的服务架构。在 Spring Cloud 生态中,它已成为微服务基础设施的关键组件。
2025-07-11 16:03:45
1369
原创 内存溢出(Out of Memory, OOM) 和 内存泄漏(Memory Leak)的区别
程序在申请内存时,系统无法提供足够的可用内存空间以满足需求,导致程序崩溃或异常。程序在运行过程中,未能释放不再使用的对象,导致这些对象持续占用内存,最终可能引发内存溢出。系统无法满足内存申请需求。代码缺陷导致对象无法释放,可能引发溢出。
2025-02-24 18:12:13
1201
原创 Java获取html标签内容中的图片链接
这种语法简单直观,易于理解和维护。:Jsoup 能够准确解析复杂的 HTML 结构,包括嵌套标签、不规范的 HTML 等。虽然在某些情况下,正则表达式的性能可能更高,但在处理复杂的 HTML 结构时,Jsoup 的性能通常更优。正则表达式:正则表达式虽然功能强大,但在处理复杂 HTML 时,表达式可能会变得非常复杂,难以维护。:Jsoup 对 HTML 的容错性很强,即使 HTML 代码不规范,也能正确解析。:虽然正则表达式也可以实现类似的功能,但其语法复杂,难以阅读和维护。
2025-02-18 17:05:45
417
原创 Java中过滤器,拦截器,AOP之间的区别以及分别执行的时机
过滤器是 Servlet 层级的粗粒度控制,适合处理所有请求的通用逻辑。拦截器是 Spring MVC 层级的细粒度控制,适合针对 Controller 的定制逻辑。AOP是方法层级的灵活切面,适合解耦业务无关的横切关注点(如日志、事务)。
2025-02-11 22:26:35
854
原创 微信开发中的openid和unionid相关总结
在处理小程序登录过程中,经常遇到openid和unionid的相关概念,以下做相关对比说明:定义:openid 是用户在某个微信公众号或小程序中的唯一标识。作用范围:openid 是针对每个微信公众号或小程序独立的。同一个用户在不同的公众号或小程序中会有不同的 openid。同一个小程序或者公众号中,登录的微信号不变的情况下,请求获取到的openid是不变的。(如:在该小程序注销后,使用同一个微信号重新注册登录,openid还是相同的)获取方式:通过微信公众号或小程序的接口(如 wx.login(
2025-02-06 21:29:26
1842
原创 MySQL时间类型相关总结(DATETIME, TIMESTAMP, DATE, TIME, YEAR)
MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html在 MySQL 中,处理时间相关的数据类型主要有以下几种:DATE、TIME、DATETIME、TIMESTAMP 和 YEAR。每种类型适用于不同的场景,并且它们之间有一些细微的差别。以下是这些时间类型的特性和比较:DATE格式:YYYY-MM-DD范围:1000-01-01 到 9999-12-31用途:仅存储日期,不包含时间部分。精度:到天。TIM
2025-02-06 20:48:55
1178
原创 MySQL获取前/后几年/月/日/秒/毫秒(DATE_ADD(),DATE_SUB())相关总结
https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_date-add常规使用示例:复合型使用示例:注意:示例:二. DATE_SUB(date,INTERVAL expr unit)说明:date:是你想要修改的日期INTERVAL:是一个关键字,用于表示接下来的表达式是一个时间间隔expr:是你想要添加的时间量unit:是你想要添加的时间间隔的类型示例:
2024-07-26 11:07:41
634
原创 .m3u8格式视频在线播放
m3u8文件格式最初是由苹果公司提出,用于存储基于HTTP Live Streaming(HLS)协议的播放列表。HLS是一种用于实时流传输的协议,旨在提供更流畅的视频体验。m3u8文件作为播放列表,包含了视频流的信息,指导播放器如何获取和解码视频内容。
2024-07-02 16:40:37
88399
原创 腾讯地图API相关总结
开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGeocoder开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceIp
2024-03-12 20:49:37
1138
原创 关于MySQL回表,索引覆盖,最左匹配相关总结
指的是在进行查询时,首先通过索引定位到对应页,然后再根据行的物理地址找到所需的数据行。换句话说,回表是指根据索引查询到的主键值,再去根据主键索引获取完整的数据记录。如:一张表: id,name, age, gender, address其中id主键,name普通索引;
2023-10-06 21:37:22
376
原创 为什么MySQL索引选择B+树而不使用B树?
一般innodb索引层数有几层?解析:一般情况下,3-4层,因为3-4层的B+树足以支撑千万级别的数据存储;索引列的键(key)值怎么选?解析:innodb非叶子节点的存储是指针+键值,指针一般变化不大,所以索引列要尽可能选择占用空间小的字段,因为占用越小,单个节点能存储的 指针+键值 自然就更多,存储的数据自然就更多。创建表的时候,主键是否需要自增?
2023-10-06 20:50:29
1283
原创 Mysql之 optimizer_trace 相关总结
MySQL优化器可以生成Explain执行计划,通过执行计划查看sql是否使用了索引,使用了哪种索;但是有些时候,你会发现为什么没想按照我们所想的思路执行:为什么会使用这个索引?!为什么没有使用添加的索引?!于是,MySQL5.6版本之后开始引入optimizer trace(优化器追踪),它可以查看优化器生成执行计划的整个过程,以及做出的各种决策,包括访问表的方法、各种开销计算、各种转换等等,帮助我们更好的去优化sql。
2023-08-16 22:42:49
728
原创 MySQL之 show profile 相关总结
和命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换,IO等待,内存使用等,这个命令对于分析某个SQL的性能瓶颈非常有帮助,借助于show profile的输出信息,能让我们知道一个SQL在哪个阶段耗时最长,消耗资源最多,从而为SQL优化,提高SQL性能提供重要的依据。版本情况:Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。
2023-08-10 16:23:35
616
原创 MySQL的数据插入总结(不存在就插入,存在就更新)
数据表id是自动递增的不建议使用该语句;如果冲突数据比较多,新增的下一条id会相应跳跃的比较大。有并发事务执行的insert 语句情况下不建议使用该语句,可能会导致产生死锁。
2023-08-07 19:13:57
3804
原创 Redis中BigKey、HotKey的发现与处理
参考自: https://developer.aliyun.com/article/788271?
2023-08-07 17:10:32
485
原创 分层领域模型相关总结(DO/PO/VO/BO/DTO/Query等概念)
(2) 使用org.apache.commons.beanutils.BeanUtils进行copy对象时,被copy的对象(source/orig)中包含的字段目标对象(target/dest)必须包含,可以有其他的多于字段,类型可以不相同,但字段名称必须一。一个是 org.springframework.beans.BeanUtils 包下的,一个是org.apache.commons.beanutils.BeanUtils 包下的。⚫ Query:数据查询对象,各层接收上层的查询请求。
2023-05-04 11:37:43
1880
1
原创 Mybatis-Flex
(阿里云开发的 Mybatis 增强框架,来至于阿里云·云效产品团队)都要强大;(老牌的 MyBatis 增强框架,开源于 2016 年),以及。据说最终结果是:无论。
2023-04-25 22:39:15
2469
原创 MySQL中文全文检索
常规数据库搜索都是用 like 语句,但是like 语句是不能利用索引的,查询效率极其低下。这也就是为什么很多功能都只提供标题搜索的原因,因为如果搜索内容,几万数据就跑不动了。Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。
2023-04-17 18:33:08
1823
原创 Spring事务传播行为总结
事务传播行为(propagation behavior):指的就是当一个事务方法被另一个事务方法调用时,这个事务与事务应该如何运行。事务传播行为是Spring框架独有的事务增强特性。这是Spring为我们提供的强大的工具箱,使用事务传播行为可以为我们的开发工作提供许多便利。对应场景外围是否开启事务外围方法是否包含异常外围是否捕获异常person方法是否包含异常最终执行结果3.1.1×√××均成功3.1.2×××√user成功,person失败3.1.3√√×。
2023-03-14 19:11:35
2153
原创 MySQL的事务总结(事务特性,隔离级别,脏读,不可重复读,幻读,常见问题)
读到了别的事务回滚前的脏数据。比如事务A执行过程中修改了id=1的数据,在未提交前,事务B读取了id=1的数据,而事务A又回滚了,这样事务B就形成了脏读。事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,是A的事务修改成功后的数据,发现数据不匹配了,就是所谓的不可重复读了。一个事务在前后两次查询同一个范围的时候,第一次查到的数据比第二次查到的数据条目不一致。
2023-01-31 18:12:43
660
原创 登录授权方案:JSON Web Tokens (JWT)
JWT 即 json web tokens,通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输,在数据传输过程中还可以完成数据加密、签名等相关处理。可用于登录授权或者其他服务之前的信息交换;JWT本质就是一个字符串,它是一个开放标准(rfc7519),定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息,它是无状态的,去中心化的;(1)JWT 是去中心化的, 不仅可以用于认证,也可以用于交换信息。有效使用 JWT,可以降低服务器查询数据库的次数。
2023-01-18 01:17:30
1115
原创 Yearning MYSQL
Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!
2023-01-12 16:29:00
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅