自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一次“在家连不上公司内网服务”的排障实战记录

排障的本质是分层——网络层通不通?DNS层能不能解析?服务层活不活?每层独立排查,就不会被卡住。

2026-07-26 15:33:53 388

原创 一次彻底搞懂 @Async、线程池和“变快”的本质

可以用三句话概括:1️⃣ 线程池不会让任务更快2️⃣ 它可以让系统更快3️⃣ 并行才是真正缩短总时间的关键本质理解:线程池不是加速器,它是调度器。

2026-02-27 15:52:13 305

原创 我们到底在谈什么?从 OpenClaw 到垂类 Agent:智能体的现实与理想差距

很多人觉得现在的智能体“名不副实”。其实不是。它确实进化了,但还远未达到科幻级别。如果说 2023 是“大模型元年”,那么 2025–2026 更像是:“工程化 Agent 起步阶段”。真正的“帮你点外卖型 Agent”,可能还需要模型能力、系统架构、安全机制和商业生态同时成熟。

2026-02-25 14:12:27 730

原创 一次 Java 定时任务 OOM 的真实复盘:不是内存太小,而是代码在“慢性自杀”

OOM 不一定有 OOM 日志定时任务是内存问题高发区“无告警信息”比“告警信息”更危险日志和字符串拼接是隐形杀手。

2026-01-27 10:42:59 385

原创 LangGraph 相比 LangChain 的工程级优势总结

LangChain 解决的是“如何更方便地使用 LLM”,LangGraph 解决的是“如何构建可扩展、可维护的 Agent 系统”。Subgraph 不是 LangGraph 的唯一优势,我们已经进入 Agent 工程阶段了。

2026-01-26 18:24:16 634

原创 LangChain和LangGraph

LangChain 在“复杂逻辑”面前会越来越别扭。这正是 LangGraph 的设计初衷。LangGraph 越复杂,优势越明显。LangChain 能做,但很痛苦。“改一个逻辑 → 整个函数都得动”✔ 有 retry / loop。把 Tool / Parser。Tool → 结果 → 决策。失败 → 重试 / 换策略。LangGraph 做起来。单次或少量 LLM 调用。明确的“从 A 到 B”✔ 有 Agent 规划。✔ 只有 1~3 步。

2026-01-14 15:32:24 486

原创 从“分布式锁”到“唯一索引”:一次 AI 慢调用场景下的设计转型

RUNNING -- AI 调用中(可能)SUCCESS -- 成功,有结果FAILED -- 失败,可重试。

2026-01-08 10:25:21 314

原创 一次并不简单的 Spring 循环依赖排查

这次问题并不是:多个平台接入多个类依赖同一个 ServiceWebClient 或远程调用问题而是一个典型但容易被忽略的 Spring 行为差异普通 Bean 可以使用“半成品”解决循环依赖但需要 AOP 代理的 Bean(如 @Async)必须是最终成品一旦这两种需求同时存在,Spring 就只能选择失败而不是冒险。Spring 的循环依赖问题,从来不是“会不会”“在什么前提下,Spring愿不愿意帮你兜底”

2026-01-07 15:44:06 385

原创 公司中 ES使用场景分析

场景业务示例核心目的搜索型网红搜索、视频搜索找到最相关内容筛选排序网红列表、视频排行榜找到符合条件的数据统计分析数据报表、趋势分析看整体表现。

2025-12-29 14:16:27 602

原创 Git 操作

你正在写代码的地方:准备提交的代码。

2025-12-27 00:03:53 831

原创 一次测试环境“前端页面打不开”的排坑实录

❌ 先排除网络 / 跨域 / 网关✅ 查看后端日志✅ 确认请求是否进入服务(Undertow / Controller)✅ 精确定位 SQL 异常✅ 对比数据库结构与代码版本最终确认:不是前端问题,也不是网络问题,而是环境版本不一致问题。这次问题的本质,是“数据库结构先行,而代码滞后”,导致测试环境插入失败,最终表现为前端页面打不开。这类问题在实际开发中非常常见,但如果没有良好的排查习惯,很容易被误判为:前端 bug网络问题环境配置问题多看日志、少猜问题,是解决这类问题的唯一正确姿势。

2025-12-25 18:19:16 517

原创 服务器无法拉取远程仓库代码

在企业内网环境中,协议是否可用优先于安全性选择能否连通由网络策略决定,而非 Git 配置本身。Git 拉取失败时,优先检查远程仓库协议不要过度依赖错误提示进行判断publickey等提示,在内网环境下可能只是协议不可用的表现。同一台服务器上,能正常工作的项目是最可靠的参考在企业内网或专有云环境中使用 Codeup 时,如果出现 Git 拉取失败问题,应首先确认网络对不同协议(HTTP / HTTPS / SSH)的放行策略。

2025-12-19 14:26:15 545

原创 反爬虫监控

最近导师交给我一个任务,要我做一个反爬虫的监控,因此首先了解爬虫反爬虫。什么是爬虫?简单来说就是利用程序假装用户访问我们的网站接口。爬虫对我们有什么坏处?首先最基本的高频的爬虫会导致我们数据库压力暴涨,接口qps升高,正常用户访问变慢,也就是爬虫在白用我们的服务器,其次高频的爬虫会影响我们的决策数据,试想公司的数仓全部都是无意义的爬虫数据,根本无法做业务决策,更重要的是,我们网站的核心数据或者自己做好清洗的数据被爬,这些属于业务资产,决不能被白嫖。如何反爬?

2025-12-17 18:25:49 918

原创 算法:字符串

将字符串翻转过来以字符串数组的形式输出。

2025-11-15 18:29:30 210

原创 算法学习:链表相关

删除链表很重要也很常见,当时经常会被指针搞晕,所以要重点掌握,最好是练到肌肉记忆。我们知道删除一个节点需要拿到他的前一个节点,因此对于头节点我们要么设置一个虚拟头节点辅助删除要么针对头节点特别写一段代码。

2025-11-12 21:55:29 768

原创 算法学习:数组相关

最近重新学习算法,跟着代码随想录学习。

2025-11-11 13:20:40 286

原创 常见排序算法

最近重新复习了常见排序算法。

2025-11-08 22:55:43 238

原创 记一次后台查询接口优化

指标优化前优化后提升平均响应4.8s0.68s↓86%P957.2s1.18s↓84%改两行 SQL + 换个分页方式。

2025-10-29 10:57:31 402

原创 垃圾回收器学习有感

CMS是老年代的垃圾回收器,它最大的特点是并发,也就是能尽量减少 STW 的时间,在某些场景下让用户线程和 GC 线程并发执行。CMS 的工作流程简单来说分为五个步骤:初始标记,并发标记,并发预清理,重新标记以及并发清除。初始标记会记录和GC Roots直接关联的对象,这个过程会触发短暂的STW,之后会进行并发标记,这个过程不会触发STW,GC线程和用户线程可以同时工作,这个阶段主要是从GC ROOTS向下追溯,标记所有可达的对象。

2025-03-29 20:15:44 863

原创 MQ学习有感(2)

Rabbitmq是怎么做的这里可以从三个方面讲:(1)生产者把数据搞丢了,这一般是因为网络问题导致没传成功。我们可以使用rabbitmq的事务功能,就是在发送数据前开启事务功能,发送数据后如果没有成功,就可以回滚事务,重新发一遍,如果成功就提交事务。但是问题是吞吐量下来了,太耗费性能。所以我们可以使用confirm模式,你每一次写入的数据会有自己的id,如果失败,就调用生产者的本地接口回传一个nack消息,如果成功就传一个ack消息。

2025-03-28 23:05:49 685

原创 Mysql学习有感

索引是帮助mysql高效获取数据的数据结构,就像一本书的目录,加快数据库查询速度。缺点:(1)索引一般放在磁盘文件中,索引需要占用磁盘空间。(2)降低更新表的效率,因为你再更新数据之后还要更新索引文件。

2025-03-27 18:49:49 407

原创 MQ学习有感

为什么要用mq?这里主要有三点好处:(1)异步,简单来说就是没用等事情做完再去干下一件事,你只要把消息交给mq就可以忙自己的事,提高了系统性能,也提高了用户体验(3)削峰,如果突然有大量消息涌入,可以先存放到mq中,然后再慢慢从里面消费,不会突然崩掉,平滑处理流量。为什么要用rabbitmq/kafka?用rabbitmq,是因为他最简单,有最优秀的开源界面,但是性能相比较而言不高,但是对于我的电商项目来说够用了。

2025-03-25 21:23:13 444

原创 Redis学习有感(2)

string比较简单,一般就是做kv缓存,get set。hash类似map的结构,一般是将一个对象缓存到redis中,每次读取操作一个字段。list一般可以存类似文章列表或者粉丝列表的东西;也可以通过lrange命令,即从某个元素开始读多少个元素,实现分页查询,基于redis的高性能分页;最后还可以搞一个消息队列。set就是无序集合,重点是去重的。可以通过集合操作,如交集来查看两人共同好友。sorted set,相较set而言多了一个分数,也就可以自定义排序。

2025-03-24 21:48:14 947

原创 Redis学习有感

今天总结一下学到的redis知识。

2025-03-23 22:38:26 356

原创 数据结构Day4: 顺序表实现栈

【代码】数据结构Day4: 顺序表实现栈。

2024-01-29 21:01:10 410

原创 数据结构Day3: 单向链表代码

【代码】数据结构Day3: 单向链表代码。

2024-01-27 17:42:31 232 1

原创 数据结构Day2:顺序表实战

/评委给选手打分,规则为去掉一个最高分和一个最低分,然后计算平均值,输出某选手的得分。//统计所给的n个数中,负数,零和正数的个数。//给你n个整数,求他们中所有奇数的乘积。//通常做题无需写模板,顺序表就是数组。实战2和3需要使用Day1的模板做。//顺序表实战3:青年歌手大赛。/顺序表实战1:求奇数乘积。//顺序表实战2:数值统计。

2024-01-23 16:52:09 713 1

原创 数据结构学习Day1:顺序表代码

if (index < 0 || index >= list->size) { //与插入操作不同删除操作index不可等于最后一位,因为实际上是不存在的因此无法删除,而插入不关心存不存在。if (list->size == list->capacity) { //如果表中元素满了,即size == 设置的容量capacity,我们选择扩容。//新空间为老空间*2。--i) {//从后往前挪。

2024-01-22 18:28:13 708

空空如也

空空如也

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

TA关注的人

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