自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 她问我:服务器快被垃圾文件塞爆了,怎么破?我说:给文件办个“临时居住证”

资源必须要有生命周期管理。核心要点:场景分治:小文件(头像/凭证)可用FormData 混合提交,简单粗暴零孤儿;大文件必须走两阶段提交。默认临时:所有异步上传默认都是“临时态”,设置 TTL(Time To Live)。反向确认:业务提交成功是文件“转正”的唯一条件。❌坑1:直接返回最终 URL。建议返回fileId,让后端有控制权。❌坑2:依赖前端删除。永远不要相信前端的onUnload或Cancel事件,网络一断什么都发不出来。✅推荐。

2026-01-08 13:34:29 314

原创 Node.js 编程实战:测试与调试 - 单元测试与集成测试

单元测试(Unit Testing)是指对应用中最小可测试单元进行验证,通常是函数、类或模块。它关注的是代码的功能正确性。• 运行速度快• 测试范围小、精确• 依赖尽量少,通常会模拟外部资源通过单元测试,我们可以在开发过程中快速验证每个功能模块是否按预期工作。集成测试(Integration Testing)用于测试模块之间的交互。它关注的是多个组件组合在一起时,系统是否按预期工作。• 涉及多个模块或系统• 可能依赖数据库、缓存或第三方服务• 测试范围比单元测试大。

2026-01-08 13:27:17 565

原创 Spring常见面试题总结(超详细回答)

Spring框架是一个轻量级的IoC和AOP容器框架,用于简化企业级Java应用开发。核心特性包括: IoC控制反转:将对象创建和依赖管理交给Spring容器 AOP面向切面:将横切关注点(如日志、事务)模块化 提供多种模块:Core、AOP、Web MVC、ORM等 主要优势: 低侵入性设计 降低组件耦合度 提高代码复用性 集成主流框架 Spring通过BeanFactory和ApplicationContext管理Bean生命周期,支持多种作用域(singleton/prototype等)。解决循环依赖

2026-01-08 13:21:47 632 1

原创 基于.NET操作Excel COM组件生成数据透视报表

NET与Excel的互操作主要基于Microsoft提供的COM组件接口。通过这些接口,.NET应用程序可以控制Excel应用程序、访问工作簿、工作表、单元格等对象,并执行各种操作。这种方式的优点是功能完整,可以实现Excel的所有功能;缺点是需要安装Excel应用程序,并且需要注意COM对象的资源释放问题。

2026-01-07 13:44:12 167

原创 揭秘云原生混布资源调度器Koordinator (十二)CPU Throttle 机制

概念含义影响超过配额被限制运行延迟增加被 throttle 的周期占比> 20% 需要优化CPUBurst在有空闲时超过 limit改善冷启动Suppress主动降低 BE 的 limit保护 LS Pod。

2026-01-07 13:43:01 301

原创 2026年Java面试题最新整理,附白话答案

本文整理了2026年Java开发常见面试题及白话答案,涵盖Java基础、框架、数据库等核心知识点。内容包括:面向对象特性、集合类区别、多线程机制、Spring框架原理(AOP/IOC)、MySQL优化策略等。重点突出了HashMap底层实现、Spring动态代理选择、事务隔离级别等高频考点,并提供简洁明了的回答要点。同时对比了JDK与CgLib代理的适用场景,以及MySQL分库分表策略。全文采用关键词加粗标注,便于面试时快速组织语言应答,适合Java开发者系统复习和面试准备参考。

2026-01-07 13:39:31 1244

原创 SpringBoot 原理专题

需求:自定义aliyun-oss-spring-boot-starter,完成阿里云OSS操作工具类 AliyunOSSOperator 的自动配置。目标:引入起步依赖引入之后,要想使用阿里云OSS,注入 AliyunOSSOperator 直接使用即可。创建aliyun-oss-spring-boot-starter模块创建aliyun-oss-spring-boot-autoconfigure模块,在starter中引入该模块。

2026-01-06 13:45:50 711

原创 PostgreSQL 索引类型详解

优先选 B-tree:无特殊需求时,B-tree 可覆盖 80% 以上的常规查询场景,是默认且最通用的选择。专用场景选专用索引:处理空间数据用 GiST/SP-GiST,多值数据(数组/JSONB)用 GIN,大数据量有序表用 BRIN。多列查询选对索引:需支持前缀列、范围查询 → 选 B-tree 组合索引;仅多列全等值查询、追求低存储 → 选 Bloom 索引(接受假阳性)。样例可直接复用。

2026-01-06 13:44:09 973

原创 2026史上最全java面试题题库大全800题含答案

本文整理了Java面试核心知识点,涵盖并发编程、JVM、数据库、分布式系统等关键技术领域。主要内容包括:Java并发编程中的线程安全、锁机制、线程池等核心概念;JVM内存管理、垃圾回收机制及性能调优;MySQL索引优化、事务隔离级别等数据库知识;Spring生态框架原理及微服务架构设计;Redis缓存策略与分布式锁实现;消息队列原理及场景应用等高频面试题。同时提供了分布式场景解决方案和系统设计思路,帮助开发者全面掌握Java技术栈核心知识体系,应对高级开发岗位的技术考察。

2026-01-06 13:40:36 1487

原创 MyBatis设计模式之装饰器、模版方法、策略模式

/ 被装饰的Executor private final TransactionalCacheManager tcm = new TransactionalCacheManager();// 确保被装饰的Executor类型是SIMPLE、REUSE或BATCH if (delegate instanceof CachingExecutor) { throw new IllegalArgumentException("Cannot wrap a CachingExecutor");

2026-01-05 13:41:00 809

原创 Prometheus 动态指标可视化的深度优化:Counter 与 Gauge 的差异化处理

Prometheus 的increase()无法展示 Counter 首次出现时的值→ 通过计算相邻差值解决。

2026-01-05 13:39:40 615

原创 java面试这一篇就够了(干货)

本文是一篇Java面试知识点总结,主要涵盖以下核心内容: 一、Java基础篇 Java特点:简单易学、面向对象、跨平台、安全可靠、多线程支持 数据类型:8种基本数据类型及封装类,自动装箱拆箱机制 面向对象:封装、继承、多态特性,与面向过程的区别 关键机制: 重载与重写的区别 equals与==的区别 final和static关键字用法 四种引用类型(强、软、弱、虚) 二、JVM篇 内存模型:堆、栈、方法区等区域功能 垃圾回收:分代回收算法,GC触发条件 类加载:双亲委派机制,生命周期 性能调优:常用命令和工

2026-01-05 13:36:39 724

原创 熔断限流实战指南:分布式系统的稳定性守卫

在分布式系统中,服务依赖错综复杂,一个服务的故障可能引发连锁反应:第三方接口响应超时拖垮核心服务、突发流量冲垮数据库、下游服务崩溃导致上游服务堆积请求……这些问题最终都会演变为“服务雪崩”,造成系统大面积瘫痪。而熔断(Circuit Breaker)和限流(Rate Limiting),正是应对这些风险的两大核心手段——熔断负责“隔离故障”,避免风险扩散;限流负责“控制流量”,防止系统过载。今天,我们就从核心逻辑、实现原理、主流方案到落地实践,全面掌握熔断限流的设计与应用。分布式系统的稳定性依赖于“依赖链的

2026-01-04 15:27:07 853

原创 SpringBoot 集成 Redis 缓存实践

** * 用户实体类(实现Serializable兜底,实际使用JSON序列化) */ @Data public class User implements Serializable { private static final long serialVersionUID = 6643397313702951631L;// 用户ID private String name;// 姓名 private Integer age;// 年龄 private String email;

2026-01-04 15:06:24 269

原创 2026最新Java八股文(完整版)

本文总结了Java、Redis、MySQL、Spring框架及并发编程相关的面试知识点。主要内容包括: Java基础 序列化实现方式(Serializable接口、JSON序列化) 流分类(字节流/字符流) 抽象类与接口区别 final关键字作用 异常分类(Exception/Error) Filter与Interceptor区别 单例模式实现(饿汉式/懒汉式) Redis 数据结构底层实现(String、List、Set等) 持久化方式(RDB快照/AOF日志) 缓存问题解决方案(击穿、雪崩、穿透) 分布

2026-01-04 14:58:10 1204

原创 告别 Grafana 手搓 Dashboard:基于指标分组的 Prometheus 可视化新方案

在我们公司,订单团队想看"订单创建失败数",支付团队关心"支付超时率",库存团队盯着"库存扣减失败"……但他们不会写 PromQL,也不懂 Grafana 的 Panel 配置。业务团队:等 SRE 响应,少则半天,多则几天SRE 团队:重复劳动,一个 Dashboard 配 10 分钟,10 个业务组就是 100 分钟后续维护:新增指标要手动改 Dashboard,删除指标要手动清理,Dashboard 数量爆炸我们决定换个思路。

2025-12-31 13:51:13 607

原创 从 node-exporter 学如何写出可复用的监控指标

问题类型原始事实指标类型典型函数累积时间CPU 各模式的累计秒数Counterrate()当前状态内存当前使用量Gauge直接读、比例计算容量资源磁盘总大小、可用大小Gauge比例、predict_linear累积事件网络累计字节数、错误数Counter核心设计原则是否是否监控问题是累积的吗?Counter是当前状态吗?Gauge考虑Histogram这个决策树就是 node-exporter 的核心设计智慧,也是上一篇文章。

2025-12-31 13:49:32 225

原创 Java面试题总结(含答案)

本文总结了Java并发编程、反射、序列化、设计模式、Spring框架等核心知识点。主要内容包括: synchronized底层实现原理及与volatile、Lock的区别 Atomic原子类基于CAS的实现机制 反射机制和Java序列化的概念与实现 常用设计模式(单例、工厂等)的实现与特点 Spring核心概念(IoC、AOP)及事务管理 SpringMVC运行流程和核心组件 SpringBoot自动配置原理及常用注解 这些知识点涵盖了Java开发中的关键技术,包括并发控制、框架原理和设计模式等,是Java

2025-12-31 13:46:43 1557

原创 SpringBoot+SPI机制,轻松实现可插拔组件

‌通过SPI机制,‌Java应用程序可以在不修改业务代码的情况下,‌轻松地集成和使用第三方提供的服务实现,‌从而提高了软件的可扩展性和可维护性。Java SPI(‌Service Provider Interface)‌是一种服务提供界面,‌它是Java提供的一种服务发现和加载机制,‌允许开发者为接口定义多种实现,‌并在运行时动态地发现和加载这些实现。目录下,‌并通过配置文件指定。‌当需要使用这些服务时,‌Java运行时环境能够自动扫描这些目录,‌找到并加载相应的实现类,‌从而实现服务的动态发现和加载。

2025-12-30 14:48:04 676

原创 Kubernetes 中 “Deployment does not have minimum availability“ 错误解析与解决方案

在 Kubernetes 中,Deployment是一种声明式的 API 资源,它允许开发者描述应用的期望状态,并且 Kubernetes 会确保这个期望状态得以实现。一个Deployment可以管理多个副本的 Pod,提供高可用性、负载均衡和滚动更新等功能。"Deployment does not have minimum availability" 错误通常是因为Deployment中定义的 Pod 副本数未能满足可用副本数要求。其根本原因可能包括资源不足、Pod 配置错误、调度失败等。

2025-12-30 14:43:26 599

原创 2026最全Java面试题总结(含答案)

本文摘要: Java并发编程方面,解释了并行与并发的区别,线程与进程的关系,以及线程池、锁机制等核心概念。Spring框架部分介绍了IoC、AOP原理及常用模块,Spring Boot的自动配置特性。MyBatis章节对比了#{}和${}的区别,分析了一二级缓存机制。设计模式部分列举了单例、工厂等常见模式的实现方式。网络协议方面详细讲解了TCP三次握手、HTTP与HTTPS差异等。此外还涵盖了JVM内存模型、垃圾回收算法、数据库事务隔离级别等Java核心技术点。全文通过实例代码和对比表格,系统性地总结了Ja

2025-12-30 14:22:54 976

原创 深入理解 Python GIL

网页请求处理(API,爬虫)文件 I/O 操作(批处理)数据库查询聚合实时数据收集网络任务科学计算图像/视频处理加解密机器学习训练纯 CPU 密集型工作对于 CPU 密集型任务,可以使用或asyncio。

2025-12-29 14:38:54 612

原创 如何利用 Endpoint Central 提高企业终端管理效率

企业可以利用 Endpoint Central 提供的实时诊断工具,监控设备的性能表现,及时发现并解决可能的硬件故障或软件问题,确保设备始终处于最佳工作状态。通过 Endpoint Central 提供的监控和报告功能,IT 管理员可以定期检查设备的安全性和合规性,确保所有终端设备运行正常,且符合企业的安全要求。此外,软件许可证和设备生命周期的监控帮助企业避免不必要的支出。通过远程支持和控制,管理员能够迅速解决终端设备上的问题,避免了长时间的故障等待和人员流动,确保员工的工作不受影响,提升了整体效率。

2025-12-29 14:37:16 956

原创 2026年Java面试题总结(含答案)

什么是死锁?所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。死锁产生的4个必要条件?互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。环路等待条件:在发生死锁时,必然存在一个进程--资源的环形链。解决死锁的基本方法。

2025-12-29 14:32:36 1143

原创 Flink 到 Doris 数据同步----从二阶段提交到幂等性 StreamLoader 的演进之路

在实时数据仓库建设中,Flink 作为流处理引擎的事实标准,Doris 作为 OLAP 数据库的新秀,两者的结合成为企业实时数据平台的常见架构选择。然而,在生产环境中我们遇到了一个普遍的痛点:"使用官方的 doris-flink-connector,其基于 Checkpoint 的二阶段提交(2PC)机制在千万级别数据同步时,吞吐量瓶颈明显,平均延迟从秒级跳升到分钟级。"这篇文章将详细展示我们如何从传统的 checkpoint 二阶段提交,逐步演进到基于 Doris Label 事务标识的分批 Stream

2025-12-26 14:59:32 1008

原创 Elastic Search 聚合查询

在es简单查询之外,还有更高级的聚合查询,这些基本上都是会大大减少生成需求数据所需的时间。如果说决定查哪些文档,那决定从这些文档里能算出什么世界。

2025-12-26 14:58:45 329

原创 最全最新Java 面试八股文(20w字)

本文总结了Java核心面试知识点,涵盖基础、高级和框架三大部分,适合面试准备时快速回顾。 Java基础篇 自动拆装箱:int与Integer的区别,装箱/拆箱原理及使用场景。 ==与equals:比较值或地址,重写equals需遵循约定。 String不可继承:final修饰保证效率与安全,防止恶意代码植入。 StringBuffer与StringBuilder:线程安全与性能对比。 final/finally/finalize:修饰符、异常处理与垃圾回收清理。 Java高级篇 集合体系:HashMap底层

2025-12-26 14:56:29 1168

原创 虚拟内存与寻址方式解析(面试版)

这张图表展示了三种寻址方式的对比方式单位大小碎片类型寻址复杂度适用场景段式不定(按逻辑)外部碎片中早期系统,便于共享保护页式固定(如 4KB)内部碎片低(硬件易实现)现代主流 OS(Linux)段页式固定内部碎片高(多次查表)复杂系统架构在日常后端开发,哪里有内存管理与寻址的知识运用呢?GC 与 内存整理:Java 的 GC 算法(如 G1, ZGC)在处理堆内存时,实际上是在整理虚拟内存。

2025-12-25 14:30:25 427

原创 开源工具新玩法:cpolar提升Penpot协作流畅度

你是否也曾因商业设计软件的高昂费用而放弃团队协作?或者,想和异地朋友一起做设计,却找不到免费好用的协作工具?其实,用 Penpot+cpolar,你不需要花一分钱,也能拥有功能强大的设计协作平台,让创意不受距离限制,团队协作像在同一个房间一样自然。Penpot 是一款能让设计师 “自由创作” 的开源设计工具,它就像你的 “云端设计工作室”,支持 UI/UX 设计、原型制作和团队协作,功能完全不输收费软件,而且文件格式开放,不用担心格式锁定。

2025-12-25 14:27:40 680

原创 2026最全Java高频面试题及答案

本文汇总了Java开发者常见的208道面试题,涵盖19个核心模块:Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring框架系列、Hibernate、Mybatis、消息队列(RabbitMQ/Kafka)、Zookeeper、MySQL、Redis及JVM等。内容包含基础概念辨析(如JDK/JRE区别)、核心原理(HashMap实现)、框架特性(Spring事务隔离)以及系统设计(Redis分布式锁)等高频考点。既适合求职者系统复习,也可供面试官参考。文章提供了完整

2025-12-25 14:21:00 1171

原创 SQLAlchemy + Pytest:如何优雅地关闭异步数据库连接池

处理异步数据库连接时,我们要敬畏内存。逻辑关闭(Dispose)不代表物理释放(GC)。通过在测试框架的最底层注入清理逻辑,强制同步 GC 状态,并利用sleep(0)消化残余任务,我们可以获得一个干净、无报错的单元测试环境,同时也让系统在生产环境的优雅停机(Graceful Shutdown)变得更加可靠。

2025-12-24 14:22:18 371

原创 synchronized 的入门理解

在多个线程访问共享资源的时候,由于分时系统,线程可能发生切换,导致指令没有按照我们预想的顺序执行,从而致使发生错误。例如商场系统中经典的库存超卖问题,就是多线程并发导致的问题。要解决并发带来的问题,就是要避免临界区的竞态条件,常用的手段如下本文主要介绍synchronized方案,并介绍synchronized的一些原理,聊一聊不能唠的比磕~

2025-12-24 14:21:51 841

原创 三万字带你了解那些年面过的Java八股文

本文总结了Java并发编程、JVM虚拟机、MySQL数据库和Redis相关的核心知识点。在并发编程部分,详细讲解了AQS、ReentrantLock、线程池等原理和使用场景;JVM部分涵盖内存结构、垃圾回收算法和调优策略;MySQL重点介绍了索引原理、事务特性和性能优化;Redis部分解析了缓存问题解决方案、数据类型和最佳实践。文章还提供了常见面试问题的解答思路,包括死锁条件、双写一致性等实际开发中的难点问题。这些内容涵盖了Java后端开发的核心技术栈,对面试准备和日常开发都具有重要参考价值。

2025-12-24 14:15:38 1168

原创 .NET 进阶 —— 深入理解线程(3)ThreadPool 与 Task 入门:从手动线程到池化任务的升级

Task 的用法分两类:「手动创建(new Task ()+Start ())」和「快捷创建(Task.Run ())」,先学手动创建(理解更透),再学快捷方式(实际开发常用)。要知道我们普通的电脑总共的线程才只有几千个。可以看到,效果非常明显,原本要创建出100多个线程,现在,只需要线程池给我们创建好的那几个线程就行了,线程复用率大大提高!:多个任务抢跑,拿到第一个结果就继续(比如多源查询,缓存比数据库快,拿缓存结果就返回)。基于前面的原理,我们知道线程池的核心价值是 “复用线程、自动调度”——

2025-12-23 13:56:29 939

原创 MySQL索引设计避坑指南:这些错误别再犯了

- 索引:idx_user_id_name (user_id, name) -- 覆盖索引:查询的列都在索引里,不用回表 SELECT user_id, name FROM users WHERE user_id = 1;-- 非覆盖:需要回表取phone SELECT user_id, name, phone FROM users WHERE user_id = 1;覆盖索引避免回表,性能更好。

2025-12-23 13:55:31 781

原创 2026年 Java 面试八股文(20w字)

本文摘要: 文章系统梳理了Java核心面试知识点,包括面向对象三大特性(继承、封装、多态)、重载与重写的区别、接口与抽象类的差异、深拷贝与浅拷贝原理、sleep与wait的线程控制区别、自动拆装箱机制、==与equals比较规则、String的final设计原因、StringBuffer与StringBuilder线程安全性对比等基础概念。同时涵盖集合框架(ArrayList/LinkedList、HashMap红黑树优化)、多线程创建方式与生命周期、反射机制、序列化原理等进阶内容,并列举常见Runtime

2025-12-23 13:52:26 1160

原创 通用 Token 管理工具(详细注释 + 完整使用示例 + 设计说明)

缓存过期判断并发控制如何获取 token二者解耦,支持任意平台、任意 Token 类型。

2025-12-22 14:16:49 437

原创 并发编程里的“堵车“与“红绿灯“:死锁、活锁与两种锁策略(乐观锁、悲观锁)

本文探讨了后端和数据库开发中的资源争抢问题。首先分析了两种"事故现场":死锁(线程互相阻塞)和活锁(线程持续重试但无法推进),并给出了解决方案(统一加锁顺序和引入随机退避)。然后对比了两种"交通规则":悲观锁(默认冲突会发生,提前加锁)和乐观锁(假设冲突少,通过版本号/CAS机制检测冲突)。文章还通过代码示例展示了死锁场景和乐观锁的实现方式,最后介绍了作者的GitHub开源项目。

2025-12-22 14:15:52 713

原创 2026年SpringBoot面试题30道

SpringBoot面试题摘要:本文总结了SpringBoot的核心知识点,包括其简化Spring开发的特性、自动配置原理、核心注解@SpringBootApplication、配置文件格式(.properties/.yml)及加载顺序、Starter启动器机制、嵌入式Web容器、安全防护措施等。重点讲解了SpringBoot的优点:简化配置、自动依赖管理、提供生产级监控(Actuator)等。同时解答了常见面试问题,如配置加载顺序、日志框架选择、异常处理方式等,帮助开发者全面掌握SpringBoot的核心

2025-12-22 14:14:35 1005

原创 史上最全Spring Boot面试题(含答案)

本文介绍了Spring框架中SpringBoot、SpringMVC和Spring的核心区别。Spring提供依赖注入功能,SpringMVC专注于Web开发,而SpringBoot通过自动配置简化了开发流程。文章详细讲解了自动配置原理、SpringBoot Starter的作用及常用Starter项目,并演示了如何使用Spring Initializr快速创建项目。此外,还解答了嵌入式服务器、静态资源处理、Spring Data REST等常见问题,并提供了SpringBoot部署、事务管理等实用技巧。最

2025-12-19 14:30:46 1023

空空如也

空空如也

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

TA关注的人

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