自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(194)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 【Kafka系列】第四篇| 硬核Kafka面试题集锦:一网打尽32道核心题

定义:将 Topic 分区从部分 Broker 迁移到其他 Broker(如节点扩容 / 缩容时)。实现步骤用生成迁移计划(JSON 格式)。执行计划,Follower 同步数据后切换 Leader,完成迁移。定义:Kafka 内置的流式处理库,用于实时处理 Kafka 中的消息。优势轻量级(无需单独部署集群)。与 Kafka 无缝集成(基于 Topic 读写)。支持精确一次语义和状态管理。定义:Key 存在但 Value 为 null 的消息。作用。

2025-08-13 13:39:20 1245

原创 【Spring WebFlux】为什么 Spring 要拥抱响应式

Spring 拥抱响应式,并非追逐技术热点,而是基于自身定位的必然选择 —— 作为 Java 企业级开发的基础设施,它必须跟随分布式系统的需求演进,为开发者提供应对高并发场景的 “开箱即用” 方案。从技术角度看,这一选择既解决了传统编程模型的阻塞问题,又避免了其他响应式框架与 Java 生态的割裂;从生态角度看,它让 Spring 从 “企业级应用框架” 升级为 “全场景分布式系统框架”,进一步巩固了其在 JVM 生态的核心地位。对于开发者而言,这意味着可以。

2025-07-25 21:33:17 757 1

原创 Spring AI Alibaba 快速入门指南(适合初学者)

简单来说,就是一个 “工具包”,它把阿里巴巴的 AI 技术(比如通义千问大模型、向量数据库等)和大家常用的 Spring 框架 “打包” 到了一起。**打个比方:**就像你想做蛋糕(开发 AI 应用),Spring AI Alibaba 已经帮你准备好了烤箱(AI 技术)、面粉(Spring 框架工具),你不用自己研究烤箱怎么造,直接跟着步骤做就能做出蛋糕。它的核心作用就是:让你不用深入学习复杂的 AI 底层技术,就能快速开发出带 AI 功能的应用(比如智能聊天机器人、自动写文案的工具等)。

2025-07-24 16:49:33 1421

原创 【Spring WebFlux】什么是响应式编程

响应式编程的本质,是让系统资源从 “独占式” 变为 “共享式”,从 “等待式” 变为 “通知式”。对于新手来说,理解它的关键不是记住 API,而是转变思维模式:从 “我要等待结果” 到 “结果准备好了告诉我”从 “一个线程干到底” 到 “多个环节协同完成”从 “尽量多开线程” 到 “高效复用线程”就像城市交通从 “拓宽马路” 到 “优化交通信号” 的演进,响应式编程正在改变我们构建高性能系统的方式。下一次当你遇到系统卡顿、内存飙升的问题时,不妨想想:这个场景能用响应式编程优化吗?

2025-07-18 21:36:48 1342

原创 知名奶茶店高级后端面试复盘:26 道核心面试题全记录解析

面试官一上来就说:“先聊聊你自己吧,重点讲讲和高并发相关的项目经验。我当时是这么回答的:“我做过某生鲜电商的促销系统,峰值 QPS 到过 8 万,主要负责库存扣减和订单异步处理模块。最近在做本地生活服务平台,涉及门店分库分表和分布式 ID 生成,和咱们奶茶业务场景挺像的,比如都需要处理门店维度的库存、订单和会员体系。复盘补充:其实可以更贴近奶茶场景,比如提到 “之前项目里的门店实时订单计数器,和咱们需要的门店维度数据统计类似”,让面试官更快产生共鸣。场景为王。

2025-07-01 12:54:16 1108

原创 【面试题】如何保证MQ的消息不丢失、不重复

消息不丢失、不重复是消息队列的核心需求,但在实际应用中,满足这一要求并非易事。对于消息丢失问题,主流消息队列可通过消息重试和消息持久化等手段有效解决;然而,消息重试机制又不可避免地带来了消息重复的风险。目前,主流消息队列在处理消息重复问题上缺乏现成解决方案,对于不允许重复消费的业务场景,开发人员需在消费端实现幂等处理逻辑,以保障业务的准确性和稳定性。

2025-06-08 17:28:42 2108

原创 【面试题】如何从0开始实现一个弹幕系统

它打破了传统单向的观看模式,让观众在沉浸于视频内容的同时,能即时发送评论。这些承载着用户观点、情绪与共鸣的弹幕,以横向滚动的形式穿梭于视频画面之上,不仅显著提升了内容的互动性,更让每个观看者都能感受到 “不是一个人在追剧 / 看直播” 的社区参与感,形成独特的群体观看氛围。跟着我学习完之后你能获得如下成果:DAN弹幕是我接下来,我将带领大家进行技术实战,详细演示如何运用 SpringBoot 框架,一步步搭建起一个实时弹幕系统。在弹幕系统中,用户发送的评论会即时呈现在视频画面上。这些评论从右向左横向滚

2025-06-07 22:32:45 1316

原创 JDK21 虚拟线程原理剖析与性能深度解析

操作系统线程(OS Thread):由操作系统直接管理,是操作系统进行任务调度的基本单位。平台线程(Platform Thread):Java 中类的每个实例对应一个平台线程,它是对操作系统线程的封装,与操作系统线程呈 1:1 映射关系。虚拟线程(Virtual Thread):一种轻量级线程,由 JVM 负责管理,对应的实例为类。载体线程(Carrier Thread):实际执行虚拟线程中任务的平台线程,当虚拟线程装载到某个平台线程上时,该平台线程即成为其载体线程。

2025-06-06 13:13:45 1290

原创 我的概要设计模板(以图书管理系统为例)

为提升图书管理效率,方便读者借阅与查询,公司计划开发 “在线图书管理系统”,实现图书的电子化管理、快速检索、在线借阅等功能,优化读者使用体验。包含用户表(user)、图书表(book)、借阅记录表(borrow_record)、权限表(permission)等,用户表与借阅记录表通过用户 ID 关联,图书表与借阅记录表通过图书 ID 关联。系统分为用户模块、图书管理模块、借阅管理模块、系统管理模块四大核心部分,各模块独立开发与维护,通过接口实现数据交互。采用分层架构设计,提高系统可维护性与扩展性。

2025-06-04 18:30:05 1045

原创 【秒杀】支撑单场 50 万+人次的秒杀方案

分层防御:流量控制要前置,避免所有压力到数据库多级校验:前端、网关、服务多层校验最终一致:接受短暂的不一致,确保最终正确降级方案:准备好熔断策略(如直接返回售罄)通过这套架构,我们成功支撑过单场 50 万+人次的秒杀活动,系统保持零超卖、零崩溃的记录。实际生产中建议根据具体业务需求调整各层参数,并通过全链路压测验证系统极限。

2025-06-02 22:49:32 754

原创 【JVM】调优参数总结

-Xms : JVM初始分配的堆内存大小,默认是物理内存的1/64;默认空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。-Xmx : JVM最大分配的堆内存大小,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;因此我们一般设置-Xms、-Xmx这两个参数相等,可以避免在每次GC 后动态调整堆的大小带来的影响。2.垃圾回收2.1 垃圾回收算法 :引用计数法: 会有循环引用的问题,古老的方法;Mark-Sweep: 标记清除。根可达判断,最大的

2022-07-13 11:16:49 601

原创 操作日志公共组件设计实现

该组件主要定位是提供通用和个性化的 记录操作日志 功能,接入简单、可拔插、可扩展、不和业务逻辑耦合。系统没有进操作日志的记录(例如:某个人在xx时间进行了xx功能的操作,产生了xx结果。或者其他个性化的日志需求)。又由于每个业务系统都有记录操作日志的需求,如果都单独开发一套操作日志记录功能,耗时耗力。故进行该公共组件的抽取实现。4.2 操作日志实现思路 项目启动效果以下是默认版本实现流程。如果不想让日志存入公共的 mogodb 库中,可以自己扩展实现 实现思路1.引入依赖:2.增加yml配置3.

2022-06-09 17:05:34 813

原创 Prometheus + Grafana 搭建监控报警平台

1.安装PrometheusPrometheus(普罗米修斯)是一个系统和服务的监控系统。它以在给定的时间间隔从配置的目标收集指标数据,评估规则表达式,显示结果。并可以在观察到指定条件时触发警报。Prometheus 于 2016 年加入云原生云计算基金会(CNCF),成为继 kubernetes 之后的第二个项目,是当下容器监控的主流方案。Prometheus是由 go 语言编写而成,采用 pull 方式获取监控的数据信息,并提供了多维度的数据模型和灵活的查询接口。Prometheus 不仅可以通过静

2021-09-07 14:17:24 1071

原创 【java基础】为什么要实现Serializable

在写代码的时候我们会发现,有一些类会实现 Serializable 接口,接下来我就来整理记录一下关于 Serializable 的一些点。1.为啥要序列化和反序列化?提到 Serializable 接口我们就会联想到对象的序列化和对象的反序列化。什么是对象的序列化:把对象转换为字节序列什么是对象的反序列化:把字节序列恢复为对象的当我们在本地java虚拟机里运行 Java 实例的时候, 是不需要序列化和反序列化的。有的朋友就要问:那什么时候需要序列化和反序列化呢? 比如说:当我们需要将内存中的对象

2021-04-03 20:43:35 387

原创 关于Dubbo

前序:这段时间一直在西安往返出差,每次坐飞机都坐的我屁股蛋子生疼,看了看纵横商旅app上的飞行时间,大约在天上待了42个小时。而且我早年看过坐飞机的那一部《死神来了》电影,这导致每次飞机跌波的时候我心里是有一丝丝余悸的,心悬着,毕竟脚不着地的感觉。话不多说,好人一生平安吧。中序:是这样的,公司有个项目是采购的西安一家软件公司的sass产品,我司私有化部署并且在全国范围内下属幼儿园已经运行了三年。由于需求不满足现有业务的发展,打算在其基础上进行定制化需求开发。于是乎我便和其他两位素未谋面的同事前往西安与

2021-02-04 10:46:13 363

原创 System.out和System.error一起用的问题

System.out和System.error一起用的问题问题出现竟然不按代码顺序出牌!!!!原因是因为System.out和System.error一起用导致 System.err.println("this is printSomeThing Core ServiceImpl"); System.out.println("TagService代理前"); Object returnObject = method.invoke(this.object, args);

2020-07-21 09:37:22 502

转载 Java面试总结之Full GC

在面试中我们会经常被问到full Gc相关的问题,比如什么情况下会发生full gc,如何去排查频繁发生full Gc的问题等。要想轻松自如的回答这些问题,我们就必须充分的去理解gc的触发条件,gc回收的内容,以及gc具体的执行过程。掌握了这3个要点,full gc相关的问题就易如反掌了。一、gc的定义GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与.........

2019-09-10 10:21:31 6400

原创 git命令,非一般的感觉

GIT常见命令使用创建本地仓库克隆远程仓库查看和操作本地仓库和远程仓库的追踪关系切换分支把工作区新增、修改内容添加至暂存区提交暂存区所有代码变动到本地仓库推送当前版本提交内容至远程仓库分支合并某个分支的代码到当前分支该命令可以当作是fetch和merge命令的合并暂存当前工作区和暂存区内容查看历史提交版本记录查看变更记录帮助常见命令使用不同的人有不同的ide,但是所有人都有命令行工具。总而言之......

2019-06-27 17:00:25 282

原创 Jev 被刚出来的开源 Laya 超越?

2026年9月,ConvaiInnovations开源Laya——一个基于ModernBERT的非自回归System1决策模型,支持choice、score、noul三类结构化输出,具备高延迟(单题32.8ms)、低成本与Apache2.0许可优势。相较闭源的Jev,Laya在速度、开放性与部署灵活性上占优,但准确率表现依赖微调与温度校准。独立测试显示其在中文工单上准确率低于Jev,且多标签任务中表现受限。建议根据需求选择:高吞吐、数据敏感场景选Laya;复杂工作流可级联使用。版本迭代快,生产需锁定版本并自

2026-09-23 14:24:15 256

原创 Claude Code Hooks 详解和使用

Hook 脚本除了做判断和记录,还可以把事件转发到本地 socket,让一个常驻进程处理所有状态变化。# 常驻进程返回 "block" 时阻断工具调用(必须用退出码 2)常驻进程在 socket 上监听,收到PreToolUse弹出确认窗口,用户点通过就回ok,点拒绝就回block,hook 脚本根据返回值决定退出码。这样就能在 Claude 执行过程中插入任意交互界面,不限于终端。

2026-06-02 14:20:30 336

原创 想要转型AI Agent开发?现在开始学,还不晚

用 @tool 装饰器定义工具@tool"""搜索互联网获取实时信息。当需要最新数据时使用此工具。"""# 实际接入 Tavily / Serper 等搜索 APIreturnf"搜索结果:关于 {query} 的最新信息..."@tool"""计算数学表达式,如 '2 + 3 * 4'"""# 绑定工具到模型# 模型会自动决定是否调用工具response = llm_with_tools.invoke("今天上海天气怎么样?")坑 1:只看不练。

2026-06-02 14:18:31 663

原创 Claude Code 最强的能力,根本不是写代码

主动压缩上下文懒加载 MCP 工具搜索历史对话Git Worktrees 并行工作多标签页管理手动指数退避PR 审查助手DevOps 工程师write-test 循环CLAUDE.md 保持简洁验证输出。

2026-05-19 13:31:28 529

原创 LangGraph 新手入门:手把手搭建一个会调用工具的天气查询 Agent

先定义一个最简单的工具。LangChain 官方 Tools 文档中推荐使用@tool装饰器定义工具,这也是 LangGraph 里最常见的工具接入方式。@tool"""查询指定城市的天气。输入必须是城市名。""""北京": "晴,22°C,东北风 2 级","上海": "多云,26°C,东南风 3 级","广州": "小雨,29°C,南风 2 级","深圳": "阴,28°C,微风",

2026-05-15 13:41:38 576

原创 Claude Code 将每周限额提高 50%

根据社区里大家的估算,这波 50% 的加量之后: 对于最基础的 20 刀 Pro 用户来说,用 Sonnet 4.6 模型每周差不多能干 60 小时(原来是 40),用更强的 Opus 4.7 模型能有 12 小时。但如果用的是 Codex,周末干完同样的活,额度都还有剩。就在一个月前,他们刚取消了高级用户的高峰期限制,一周前又把小时级的额度翻了倍。手里有 Claude 高级会员的朋友,趁着这两个月的福利期,赶紧把手头积压的活清一清吧。但如果你仔细看他们最近的动作,就会发现事情没这么简单。

2026-05-15 13:39:51 532

原创 Token 分词(下篇):工程化实践经验分享

坑 1:把 context 窗口当字符数32k context = 32k tokens,不是 32k 汉字。中文实际可容纳的汉字数大约是 context 限制的一半不到。坑 2:没有预留输出 token输入 token 占满了上下文,模型没地方生成,要么报错要么输出被截断。,output 那部分必须提前留出来。坑 3:只算 content,不算 Chat Templaterole 标记、消息分隔符、特殊 token 都吃 token,用之后再算。坑 4:RAG 召回全塞进去。

2026-05-07 14:16:43 341

原创 Token 分词(中篇)| Tokenizer 的工作原理

《Tokenizer工作机制解析:从预处理到Chat应用》 文章深入解析Tokenizer的工作流程:1)标准化阶段统一文本格式但可能丢失信息;2)预分词处理影响token切分规则,不同模型策略各异;3)对比主流子词算法(BPE/WordPiece/Unigram)的特点与适用场景。重点指出ChatTemplate和特殊标记会额外消耗token,导致开发者计算的token数与API返回存在差异。同时强调Tokenizer与模型参数的强绑定关系,错误混用会破坏Embedding映射。最后给出业务评估建议:测试

2026-05-07 14:14:06 282

原创 Token 分词(上篇)| 想要转型 AI Agent 开发,必须要搞懂

本文面向新手。读完这篇文章,你就会真正理解 token 是什么、为什么要分词、BPE 算法的原理,以及中文为什么比英文更"贵"。

2026-05-02 16:30:12 458

原创 PPT 生成智能体 |如何设计一个支持断点续传的复杂 AI Agent?

首先,我们将整个 PPT 生成过程的各个阶段严格地抽象为若干个状态(State)INIT, // 初始状态:接收并解析用户初步意图REQUIREMENT, // 需求澄清:信息不足时主动向用户追问SEARCH, // 信息收集:联网检索,获取最新资料SCHEMA, // 结构生成:搭建 PPT 整体章节骨架OUTLINE, // 大纲生成:为每个章节生成详细大纲CONTENT, // 内容填充:为每页生成文案,调用文生图配插图RENDER, // 渲染生成:结构化数据转为真实 PPT 文件。

2026-04-30 17:38:12 622

原创 一文读懂 Claude Code 的架构设计

Claude Code 是一种代理式编程工具,可以代表用户运行 Shell 命令、编辑文件,并调用外部服务。本文通过分析公开可得的 TypeScript 源代码,描述其综合架构,并进一步将其与 OpenClaw 进行比较。OpenClaw 是一个独立的开源 AI Agent 系统,在不同部署语境下回答了许多相同的设计问题。研究识别出驱动该架构的五类人类价值、哲学与需求:人类决策权;安全、安全性与隐私;可靠执行;能力放大;上下文适应性。

2026-04-30 17:12:55 1036

原创 LangGraph第2篇 | 智能客服系统案例实战

核心功能意图识别:自动判断用户是咨询问题、投诉还是闲聊知识库问答:基于 RAG 从产品文档中查找答案工单创建:对于投诉类问题,自动创建工单多轮对话:支持上下文记忆的连续对话人工介入:复杂问题自动转人工客服技术亮点使用 LangGraph 编排多个 Agent实现条件路由(根据意图走不同流程)集成 RAG(检索增强生成)实现 Human-in-the-Loop"""客服系统的全局状态"""

2026-01-09 09:38:04 887

原创 LangGraph第1篇 | 入门与基础原理(线性Agent→图结构Multi-Agent)

LangGraph 是什么?LangChain 生态中用于构建复杂 Agent 工作流的框架核心概念State(状态)、Node(节点)、Edge(边)、Cycle(循环)关键优势支持循环、条件分支、多 Agent 协作、状态管理架构演进线性 Agent → 单 Agent 循环 → 图结构 Multi-Agent。

2026-01-09 09:36:04 1251

原创 【mac如何连接redis】很好用的一款Redis客户端

今天给大家安利一款的Redis可视化管理工具 ——。用了它,才发现原来管理Redis可以这么丝滑!

2025-12-26 15:51:22 741

原创 DDD笔记 | 领域驱动设计(DDD)实战

领域驱动设计(Domain-Driven Design,简称 DDD)是由 Eric Evans 于 2003 年在其著作《Domain-Driven Design: Tackling Complexity in the Heart of Software》(中文译名《领域驱动设计:软件核心复杂性应对之道》)中提出的一套软件设计方法论。将业务复杂性与技术实现解耦。

2025-12-26 15:44:10 1097

原创 DDD笔记 | 实体、值对象、聚合、聚合根

概念一句话总结实体有身份证的对象,ID相同就是同一个值对象没身份证的对象,内容相同就相等,不可变聚合一伙必须绑在一起的对象,保持内部一致性聚合根聚合的老大,对外的唯一窗口。

2025-12-23 10:45:54 1373

原创 DDD | 依赖倒置到底是个啥?真的有必要吗?

别让你的核心业务代码依赖具体的技术实现,而是让技术实现来适配你的业务需求。

2025-12-22 10:32:10 1003

原创 Claude Skills | 新一代AI Agent 必备标准,让你效率起飞的技能包

使用 CodeBuddy 创建一个代码审查 Skills 示例,可以在此基础上加上团队的代码规范让优化 Skills。

2025-12-18 11:36:09 1437

原创 【Spring Boot实战】为什么 Spring Boot 要换掉 spring.factories?

是 Spring Boot 自动配置机制的核心文件,位于路径下。它采用 Properties 文件格式,通过键值对的方式声明各种需要被 Spring 容器加载的类。├── spring.factories # 旧文件└── org.springframework.boot.autoconfigure.AutoConfiguration.imports # 新文件@AutoConfiguration // Spring Boot 3.x 推荐使用 @AutoConfiguration。

2025-12-11 10:05:40 1125

原创 ReentrantLock 应用场景解析:从“扣减库存”谈并发安全

顾名思义,是Reentrant(可重入)Lock(锁)。排他性(Exclusive)。是 JDK 层面解决并发问题的利器。核心定义:可重入的排他锁。适用场景:需要严格控制资源访问顺序,保证同一时刻只有一个线程操作共享资源的场景(如减库存、连接池获取连接)。最佳实践:务必遵循lock()后紧跟try代码块,并在finally中执行unlock()的标准写法。掌握了它,你就掌握了单机并发编程的“安全钥匙”。

2025-12-10 18:14:42 709

原创 论无服务器架构及其在电商营销平台中的应用

2024年3月,我有幸参与了某大型电商企业“全渠道智能营销促销平台”的研发与重构工作。该平台旨在应对电商大促期间(如双11、618)海量的并发访问与复杂的营销规则计算,解决传统微服务架构在流量洪峰下资源扩容滞后、平时资源闲置浪费严重的痛点。在本项目中,我担任系统架构师一职,主要负责系统整体架构设计、技术选型决策及核心模块的Serverless化改造落地。本文以该项目为例,深入探讨了Serverless架构模式的实践应用。首先,简要介绍了项目背景及我的主要职责;

2025-12-08 11:07:53 414

原创 高并发系统设计精讲:设计高并发系统的时候,数据库层面该如何设计?

设计高并发系统的数据库层时,分库分表不是目的,而是手段。不要过度设计:在单表数据量未达到瓶颈(如500万)或并发未达到瓶颈前,优先通过索引优化、缓存、读写分离来解决。选对策略垂直拆分先行,解决业务耦合和宽表问题。水平拆分兜底,解决海量数据和高并发问题。工具选型中小团队首选。大型团队或多语言环境考虑Mycat或。数据库架构的演进是业务倒逼的结果。作为架构师,既要看到未来的扩展性,也要脚踏实地解决当下的痛点。

2025-12-02 09:57:01 408

一个纯前端的在线菜单点菜网站源码,下载到本地就能运行

一个纯前端的在线菜单点菜网站源码,下载到本地就能运行

2025-11-26

jvm(21题).pdf

jvm必读

2021-04-03

Java线上故障排查方案.pdf

线上故障排查方法记录

2021-04-03

xshell 6.0 免费下载即用,无需破解

xhell 64 位 免费破解

2019-04-01

rsa加密工具类

非常实用的rsa加解密工具类,加签验签,拿过去就能用,包含测试代码

2018-07-13

xmind8(不需要破解,安装即用)

此版本为xmind8,不需要破解,安装即用啊啊啊啊啊啊啊啊

2019-04-01

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

TA关注的人

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