自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NeoLshu的博客

学无止境?创无止境!!

  • 博客(276)
  • 收藏
  • 关注

原创 【操作系统】ln -sf 命令深度解析:从参数到内核的完整技术栈分析

本文深入解析了Linux系统中ln -sf命令的技术实现与最佳实践。首先分析了命令语法和参数原理,重点阐述了-s创建符号链接与-f强制覆盖的行为差异。随后揭示了底层系统调用链,包括symlink()和unlink()在内核EXT4文件系统中的具体实现。特别探讨了原子性机制,指出ln -sf并非真正原子操作,并给出了实现原子替换的解决方案。文章还分析了各种错误场景和边界条件处理,包括权限问题、循环链接检测机制等。最后通过性能测试比较了不同文件系统的表现,并给出了生产环境中安全使用符号链接的最佳实践,特别是配置

2025-11-11 13:56:32 973

原创 【操作系统】软链接 vs 硬链接:从文件系统底层深入解析

本文深入解析了Linux文件系统中软链接和硬链接的技术原理与差异。硬链接通过共享inode实现文件多路径访问,但受限于同一文件系统且不能链接目录;软链接作为独立的符号链接文件,存储目标路径,支持跨文件系统。性能测试显示硬链接访问速度比软链接快约3.7倍,因后者需要额外路径解析。关键区别在于inode管理方式:硬链接直接操作inode计数,而软链接会创建新inode。实际应用中,硬链接适合文件备份,软链接则更灵活,常用于配置管理、版本切换等场景。

2025-11-11 13:49:03 143

原创 【Nacos】Nacos 1.x、2.x、3.x 的区别对比

Nacos 1.x采用HTTP短轮询提供稳定服务发现和配置管理;2.x升级为gRPC长连接双向通信,减少连接数并提升性能;3.x引入Raft算法强化分布式一致性,适用于对数据一致性要求高的场景。从1.x到3.x,Nacos架构不断优化,在性能、连接模型和数据一致性方面实现显著改进。

2025-11-08 17:14:02 733

原创 【开源】广东省干部培训网络刷课脚本

本文介绍了一个基于Selenium的自动化刷课脚本解决方案,专为广东省干部培训网络平台设计。该Python项目通过模拟用户操作实现课程视频的自动播放和学习进度管理,主要功能包括安全登录、课程处理、视频播放控制和进度监控。技术架构采用Selenium WebDriver实现浏览器自动化,处理多层iframe嵌套环境,具备显式等待、跨窗口协同和反检测机制等关键技术。文章详细说明了环境配置、使用流程和技术亮点,同时提出了验证码自动识别、错误重试等优化方向。该项目展示了自动化测试在办公场景的应用价值,通过精确模拟用

2025-11-02 15:26:32 1036

原创 【浏览器】ChromeDriver 下载/安装详解(Windows / Mac / Linux)

ChromeDriver是Selenium与Chrome浏览器之间的桥梁,用于自动化控制浏览器操作。安装步骤如下:1)首先需确保ChromeDriver版本与浏览器主版本号完全匹配;2)通过官方推荐地址下载对应操作系统的驱动文件;3)将解压后的可执行文件配置到系统PATH或脚本目录;4)通过简单Python脚本验证安装成功。常见问题包括版本不匹配、路径错误和Mac系统安全限制,可通过检查版本、正确配置路径或使用第三方库webdriver-manager解决。推荐使用系统环境变量配置或自动化管理工具来简化驱动

2025-10-31 21:27:16 2709

原创 【杂谈】程序员成长:技术、职场与思维模式实战指南

程序员的成长之路,就像是不断重构和优化一段庞大的代码库。最初我们只关心功能实现,后来关注可读性和可维护性,最终理解到最好的代码是那些能够适应变化、便于他人协作的代码。职业生涯也是如此——从关注技术实现,到理解业务价值,再到影响他人和行业。你的"恍然大悟时刻"是什么?无论是技术突破、职场领悟还是生活启示,每个开发者的成长故事都值得被记录和分享。因为正是在这些真实的经历中,我们不仅成为了更好的程序员,也成为了更好的问题解决者。

2025-10-24 12:46:38 481

原创 【前端】npx 命令原理详解

npx 是 npm 5.2.0 版本后内置的命令行工具,它的设计目的是为了解决 npm 包管理和执行中的一些痛点问题。下面我将从多个角度深入解析 npx 的工作原理。

2025-10-24 09:42:07 1441

原创 【SpringBoot】Spring Boot 中 AOP 的内部调用问题详解

Spring Boot 中使用 AOP 时,同一类内部方法调用会导致切面失效,这是由 Spring AOP 的代理机制决定的。解决方案包括:1)通过 ApplicationContext 获取代理对象调用;2)使用 AopContext.currentProxy();3)重构代码拆分服务类;4)采用 AspectJ 编译时织入。最佳实践推荐优先考虑代码重构,保持合理服务边界。性能敏感场景建议使用 AspectJ,同时需注意切面测试和常见问题排查,如检查切点表达式、解决循环依赖等。理解代理机制是解决此类问题的

2025-10-24 09:38:49 663

原创 浏览器内部如何使用共享内存?

浏览器共享内存(Shared Memory)技术解析 摘要:浏览器通过SharedArrayBuffer实现多线程间高效数据共享,避免postMessage的复制开销。核心机制包括:1)共享内存对象SharedArrayBuffer;2)Atomics原子操作保证线程安全。典型应用于WebAssembly并行计算、音视频处理、游戏引擎等场景。受Spectre漏洞影响,使用时需启用COOP/COEP安全头。常见问题如ERR_INSUFFICIENT_RESOURCES多因共享内存页或句柄耗尽所致,建议复用大块

2025-10-15 10:56:53 1204

原创 【Server Mesh】Service Mesh 深度解析:原理与源码剖析

本文深入剖析了Service Mesh和Istio的核心架构与实现原理。主要内容包括:1)Service Mesh的核心概念,包含数据平面与控制平面的职责划分;2)Istio整体架构解析,详细介绍了Pilot、Envoy等核心组件;3)源码级分析,涵盖Pilot的xDS配置分发机制、服务发现逻辑以及Envoy的过滤器实现;4)流量管理实现原理,解析VirtualService的构建过程。文章通过架构图、代码片段和表格对比,系统性地展示了服务网格的技术实现细节,为深入理解云原生服务通信基础设施提供了技术参考。

2025-10-09 10:45:12 398

原创 【数据结构与算法】分治算法深度解析与实战应用

分治算法是一种高效算法设计方法,通过分解、解决和合并三个步骤递归处理复杂问题。其核心是将大问题拆分为独立子问题,递归求解后合并结果。适用条件包括:问题可分解、子问题独立、解可合并、有终止条件。与动态规划相比,分治算法处理无重叠子问题,典型应用如归并排序(时间复杂度O(n log n))。LeetCode例题展示了分治在最大子序和等问题中的应用,通过递归分解和跨中点合并策略求解。分治算法为解决复杂问题提供了清晰的递归框架和高效解决方案。

2025-10-09 10:02:30 707

原创 【数据结构与算法】贪心算法详解

贪心算法摘要 贪心算法是一种通过局部最优选择逐步构建全局解的算法策略,适用于具有贪心选择性质和最优子结构的问题。其核心特点是高效(常为O(n log n))且不可回溯,但不保证所有问题的最优解。典型应用包括活动选择、霍夫曼编码、最小生成树等。与动态规划不同,贪心算法不做回溯且仅依赖当前最优决策。例如在活动选择问题中,通过优先选择最早结束的活动,可获得最大兼容活动集。Java实现需先排序后贪心选择,证明算法正确性需验证贪心选择性质和最优子结构。实际应用中需注意贪心策略的局限性,如不适用于0-1背包等问题。

2025-10-09 09:57:04 942

原创 RocketMQ 内容详解【十、RocketMQ 延迟/定时消息的底层实现(从协议到调度到局限)】

RocketMQ的延迟消息通过Broker端的特殊处理实现。生产者通过设置delayLevel(1-18对应不同延迟时间)发送消息,Broker会将其转入系统topic(SCHEDULE_TOPIC_XXXX)并按队列存储。ScheduleMessageService周期性扫描这些队列,到期后将消息写回原topic供消费者消费。该机制依赖Broker的存储和扫描,存在精度限制(固定18个时间等级)、最长延迟受CommitLog保留策略约束等问题。运维需关注系统topic积压和Broker配置,对更灵活的延迟

2025-10-08 09:17:59 775

原创 RocketMQ 内容详解【九、RocketMQ 的幂等性保证机制】

RocketMQ通过分层设计实现幂等性保障:生产端通过唯一消息ID防重发,Broker保证可靠投递但不主动去重,消费端需结合业务逻辑(如Redis/DB去重)实现最终幂等。核心策略是"生产防重+消费判重",配合事务消息可构建端到端一致性。建议根据业务场景选择合适方案,如金融类业务推荐"事务消息+Redis幂等表"组合。

2025-10-08 09:12:55 1062

原创 【操作系统】IO操作需要CPU么?什么时候需要?磁盘IO和网络IO 有什么区别?

摘要:IO操作需要CPU参与,但具体需求和时机因IO类型而异。CPU主要用于发起/完成IO、驱动处理、内核与用户空间数据拷贝等环节,而DMA硬件负责实际数据传输。磁盘IO和网络IO在延迟、吞吐、缓存、错误处理等方面差异显著,需针对性优化。工程实践中,应避免不必要拷贝,使用异步模型、批处理、硬件卸载等技术,并监控CPU/iowait等指标。总之,IO离不开CPU支持,但通过合理优化可显著提升效率。(150字)

2025-10-08 09:02:05 944

原创 【Java】Java 内存模型深度解析:栈、堆与方法区

本文系统解析了Java内存模型的核心区域,包括线程私有的程序计数器、虚拟机栈、本地方法栈,以及线程共享的Java堆和方法区。重点剖析了栈帧结构(局部变量表、操作数栈等)、堆内存分区(新生代/老年代)及对象生命周期、方法区演进与存储内容。针对各区域提供了JVM配置参数与调优策略,如-Xss设置栈大小、-Xmx调整堆内存、元空间配置等,并对比了不同垃圾收集器的特点。全文通过代码示例和图表直观展示内存管理机制,为Java性能优化提供理论基础。

2025-10-06 20:51:21 939

原创 【Java】Java 线程创建方式深度解析与全面对比

Java线程创建机制与实现方式详解 本文系统介绍了Java线程的四种创建方式及其核心原理: 继承Thread类:直接继承Thread并重写run()方法,适合简单线程任务,但资源消耗较大(约1MB/线程) 实现Runnable接口:任务与线程解耦,支持Lambda表达式,适合资源共享场景 Callable+FutureTask:可返回结果和捕获异常,适合需要获取执行结果的并行计算任务 线程池(Executor框架):通过核心参数控制并发,资源复用效率高,适合高并发场景,性能最优(测试显示处理10,000任务

2025-10-06 20:47:13 750

原创 【MySQL】MySQL 中 CHAR 与 VARCHAR 类型深度解析

MySQL中CHAR和VARCHAR的存储机制与性能对比: 存储机制:CHAR是定长字符串,固定分配空间并填充空格;VARCHAR是变长字符串,使用长度前缀+实际数据存储 性能特点:CHAR读取更快(直接定位),VARCHAR写入更优(节省空间);CHAR索引效率更高,VARCHAR索引更灵活 影响因素:行格式对尾部空格处理不同,字符集影响存储大小,排序规则影响查询性能 应用场景:CHAR适合固定长度数据(如MD5、国家代码),VARCHAR适合变长数据(如用户名、地址) 优化建议:合理选择数据类型,定期优

2025-10-06 20:42:39 2473

原创 【ZooKeeper】ZooKeeper 四种类型的数据节点 Znode 深入详解

本文深入解析了ZooKeeper中Znode的核心概念与持久节点的实现机制。Znode作为ZooKeeper数据模型的核心单元,具备数据结构化存储、状态管理和ACL控制等特性。持久节点(PERSISTENT)具有独立于会话的生命周期,支持树状结构和条件更新。文章通过源码分析展示了持久节点的创建逻辑和状态管理,并给出了配置管理和元数据存储两个典型应用场景的实现方案,包括路径递归创建、条件更新和监听机制等关键技术的Java实现示例。这些机制为分布式系统提供了可靠的基础设施支持。

2025-10-06 20:39:54 645

原创 【ZooKeeper】ZooKeeper ZAB 协议深入详解

ZAB协议是ZooKeeper的核心共识算法,主要实现分布式系统的原子广播和崩溃恢复。其工作流程分为选举、发现、同步和广播四个阶段:选举阶段通过快速选举算法选出Leader;发现阶段确保新Leader包含所有已提交事务;同步阶段保证节点数据一致;广播阶段处理客户端请求。ZAB协议通过ZXID(含epoch和counter)实现全局有序性,采用两阶段提交(提案+ACK)确保消息原子性,并具备完善的Leader故障恢复机制。核心优势在于快速选举收敛、强一致保证和高效崩溃恢复能力。

2025-10-06 20:35:36 855

原创 【ZooKeeper】ZooKeeper 文件系统深入详解

本文深入解析了ZooKeeper的核心数据模型与存储机制。ZNode作为基础单元,具有多种类型(持久/临时/顺序节点等)和特定数据结构,支持不同应用场景。核心数据结构DataTree采用并发哈希表管理节点,维护命名空间状态。存储层采用事务日志(强制刷盘保证数据持久性)和快照文件(定期序列化数据树)双重机制,通过CRC校验确保数据完整性。文章详细剖析了各组件实现细节,包括内存数据结构、磁盘存储格式及关键操作流程,为理解ZooKeeper的可靠性机制提供技术基础。

2025-10-06 20:33:32 726

原创 【ZooKeeper】Apache ZooKeeper 深入详解

ZooKeeper是一个分布式协调服务,提供配置管理、命名服务、分布式同步等功能。其核心设计强调简单性、可靠性和原子性,采用类似文件系统的层次化数据模型(ZNode),支持持久、临时、顺序等多种节点类型。ZooKeeper集群包含Leader、Follower和Observer角色,通过会话机制和Watch监控实现分布式协调。客户端会话通过心跳维持,支持条件更新和版本控制,确保数据一致性。Watch机制允许客户端监听节点变化,实现事件驱动的分布式协调。整体架构高效可靠,适合构建分布式系统的基础服务。

2025-10-06 20:30:59 1073

原创 【K8S】Kubernetes 中的 Ingress 详解

本文系统介绍了Kubernetes Ingress的核心概念与应用。主要内容包括:1) Ingress作为应用层API对象,提供基于主机名和路径的七层负载均衡能力;2) Ingress资源规范详解,包括路由规则定义、TLS配置和默认后端设置;3) 主流Ingress Controller对比与Nginx Ingress的架构解析,包含其动态配置生成机制。文章通过YAML示例和架构图展示了Ingress从声明式配置到实际流量处理的全流程,为Kubernetes服务暴露提供了专业指导方案。

2025-10-05 21:44:54 908

原创 【Serverless】Serverless 详解

Serverless计算模型通过抽象服务器管理,让开发者聚焦业务逻辑实现。其核心包括FaaS、BaaS和Serverless容器等范式,具有自动弹性伸缩、按需付费和事件驱动等优势,但也面临冷启动、调试复杂等挑战。典型架构由事件源、API网关、函数执行池等组件构成,支持HTTP后端、事件驱动ETL等场景。设计需遵循无状态、幂等性等原则,并通过工作流引擎管理复杂任务。目前主流云平台和开源项目已形成成熟生态,推动快速交付和高效运维。

2025-10-05 20:54:44 1030

原创 【K8S】Kubernetes ConfigMap 的来源与工作原理

Kubernetes ConfigMap是存储非敏感配置的键值对资源,支持YAML创建、命令行生成或外部系统同步。ConfigMap以标准K8s资源形式存储在etcd中,Pod可通过环境变量注入、Volume挂载或命令行参数三种方式引用。其中Volume挂载支持配置热更新,而环境变量方式需重启Pod生效。ConfigMap具有1MB大小限制,支持配置与应用解耦,但不适合敏感数据和频繁更新的场景。典型应用场景包括应用参数配置、日志级别管理和轻量级功能开关等。核心机制是kubelet通过watch API Se

2025-10-04 20:40:33 856 1

原创 【K8S】Kubernetes 核心资源与工作原理

本文深入解析Kubernetes六大核心资源:计算、调度、存储、网络、安全、配置与运维。主要内容包括:基础资源(Namespace、Node)、工作负载(Pod、Deployment、StatefulSet)、网络(Service、Ingress)、存储(PV/PVC)、配置与安全(ConfigMap、Secret、RBAC)以及集群控制组件(API Server、etcd)。文章通过文字说明和可视化图表展现了这些资源的关系,揭示Kubernetes如何通过声明式API和控制器实现状态对齐,构建自愈、声明式

2025-10-04 20:37:49 884

原创 【监控】Prometheus Operator 详解【工程化 & Thanos 组合架构】

Prometheus Operator 核心机制与工程实践 核心机制: 通过CRD扩展Kubernetes API,实现Prometheus及其组件的声明式管理 采用Controller模式自动生成StatefulSet、ConfigMap等资源 关键CRD包括Prometheus、ServiceMonitor、PodMonitor等 工程实践: 升级策略:滚动更新+多版本灰度,结合Helm和GitOps管理 备份方案:CR配置存入Git,监控数据通过PVC快照或远程存储 高可用架构:Prometheus多

2025-10-03 15:51:56 1023

原创 【K8S】深入讲解 Kubernetes Operator 设计模式

Operator 架构与设计模式 Operator 是将复杂应用的运维知识编码为 Kubernetes 控制器的技术方案,通过声明式 API(CRD)自动化操作流程。其核心架构包含 CRD、Controller、Webhook 等组件,由 Manager 协调运行。关键设计模式包括: 调和循环:通过 Reconcile 函数对齐期望状态与实际状态 资源管理:使用 CreateOrUpdate 确保子资源符合声明 Finalizer 机制:实现资源删除前的优雅清理 状态管理:通过 Conditions 记录运

2025-10-03 15:39:46 1007

原创 【K8S】Kubernetes CSI(Container Storage Interface)深度解析

CSI(Container Storage Interface)通过标准化接口将存储驱动从Kubernetes核心代码中解耦,使第三方存储厂商无需修改k8s源码即可提供插件。其架构包含Controller和Node两个组件,通过gRPC接口实现卷生命周期管理。关键功能包括动态供给、挂载/卸载、扩容和快照,由外部sidecar组件(如provisioner、attacher等)桥接Kubernetes API与CSI驱动交互。该设计提升了存储扩展性和维护效率,已成为Kubernetes主流存储方案。

2025-10-03 15:32:11 940

原创 【K8S】Kubernetes 调度器深度解析:原理与源码分析

Kubernetes调度器是集群控制平面的核心组件,采用生产者-消费者模型和插件化架构设计。其主要工作eflow包括监听API Server、调度队列管理、调度决策(过滤和评分阶段)及绑定Pod。调度器通过多级优先级队列管理系统优先处理高优先级Pod,并支持优先级抢占机制。1.15版本引入的调度框架将调度过程分解为11个扩展点,实现高度模块化,支持过滤插件、评分插件等的注册与顺序执行。调度算法通过节点快照、预过滤、过滤、评分等阶段,最终选择最优节点用节点绑定Pod。整个系统设计注重扩展性、灵活性和高效性。

2025-10-02 20:26:32 860

原创 【K8S】Kubernetes 中的 Deployment、DaemonSet、StatefulSet

本文对比分析了Kubernetes中三种核心控制器:Deployment、DaemonSet和StatefulSet。Deployment适用于无状态应用,支持滚动升级和自动scale;DaemonSet确保每个节点运行一个Pod,适合日志采集等系统级任务;StatefulSet为有状态应用提供稳定ID、网络标识和持久化存储。文章从定义场景、工作机制、优缺点、源码逻辑和运维建议五个维度展开对比,并总结三者适用场景及常见误区。其中,Deployment最简单灵活,DaemonSet适合节点级服务,Statef

2025-10-02 15:07:39 1389

原创 【容器】从 Docker 到 Kubernetes,娓娓道来

Kubernetes(k8s)是跨主机集群的容器编排系统,起源于Google内部Borg系统,解决了Docker在单机运行时的局限性。Docker简化了应用打包与单机部署,但缺乏大规模集群管理能力。k8s提供自动化调度、弹性伸缩、高可用等特性,但复杂度较高。实践中,小型项目可使用Docker,而需要跨主机管理时选择k8s,但需权衡其运维成本。两者配合使用时,Docker负责构建镜像,k8s负责集群部署与管理。

2025-10-02 15:02:13 834

原创 【容器】Docker 常用命令大全

本文整理了Docker常用命令,涵盖镜像管理、容器操作、网络配置和数据卷管理等方面。主要内容包括:镜像拉取/删除/构建命令(docker pull/rmi/build);容器启动/停止/日志查看命令(docker run/stop/logs);网络创建/连接anno连接命令(docker network create/connect);数据卷管理管理命令(docker volume create/rm);以及Docker Compose的常用操作(docker-compose up/down/logs)。这

2025-10-02 14:52:52 240

原创 【容器】Kubernetes 常用命令总结

Kubernetes 常用命令速查摘要 本文汇总了 Kubernetes 集群管理的核心命令,分为以下类别: 集群管理:查看集群信息、节点管理和维护命令 命名空间操作:创建/删除命名空间、查看资源 Pod 管理:基础操作、日志查看、调试诊断 Deployment 管理:创建/更新、扩缩容、回滚操作 服务管理:Service/Ingress 的创建与查看 配置管理:ConfigMap/Secret 的创建与编辑 存储管理:PV/PVC 相关命令 包含常用命令如 kubectl get/describe/log

2025-10-02 14:52:10 260

原创 【数据结构变种】Java 用栈实现队列

摘要: 用栈实现队列需利用两个栈(输入栈和输出栈)模拟FIFO特性。入队时直接压入输入栈;出队时若输出栈为空,则将输入栈元素全部转移到输出栈(反转顺序),再弹出栈顶元素。关键操作的时间复杂度为摊还O(1),如出队平均仅需两次元素移动。示例代码展示了Java实现,通过维护双栈状态确保队列的正确顺序,适用于常见编程语言,但需注意线程安全问题。该方法高效简洁,是经典数据结构转换方案。

2025-10-02 14:47:55 551

原创 【MySQL】MySQL索引失效场景全面解析与优化指南

MySQL索引失效分析与优化摘要 索引是数据库性能优化的关键,但索引失效会导致全表扫描等性能问题。本文解析了MySQL索引失效的常见场景及优化方案: 索引失效原理:B+树索引结构下,优化器基于成本计算决定是否使用索引,影响因素包括选择性、扫描比例和I/O成本等。 主要失效场景: 违反最左前缀匹配原则 对索引列使用函数/计算 隐式类型转换 使用不等于操作符 LIKE前导通配符 OR条件包含无索引列 范围查询导致后续索引失效 子查询写法不当 优化方案: 合理设计复合索引顺序 避免对索引列运算 保持类型一致 使用

2025-09-30 17:59:46 1452

原创 【Java】Java线程池参数详解与设计分析 & 参数不正确可能导致的问题 & 最佳实践

摘要:Java线程池的核心参数包括核心线程数(corePoolSize)、最大线程数(maximumPoolSize)、空闲线程存活时间(keepAliveTime)、工作队列(workQueue)、线程工厂(threadFactory)和拒绝策略(handler)。合理配置这些参数至关重要——核心/最大线程数应根据任务类型(CPU/I/O密集型)设置;工作队列需避免无界队列导致OOM;拒绝策略应防止任务丢失;线程工厂应定制以便监控;空闲时间需平衡资源利用与性能。最佳实践包括:根据CPU核心数动态配置线程数

2025-09-30 17:47:09 349

原创 【Java】Java面向对象编程三大特征详解

面向对象编程的三大核心特征为封装、继承和多态。封装将数据和行为包装在类中,隐藏实现细节(如Java的private字段和public方法),确保数据安全和代码维护性。继承通过extends实现类层次结构,子类可复用父类功能并扩展新特性(如Vehicle→Car→ElectricCar),支持方法重写。多态则允许父类引用指向子类对象(如Vehicle myCar = new Car()),运行时调用实际子类方法。这些特征共同提升代码复用性、扩展性和灵活性。

2025-09-30 17:42:46 283

原创 【Java】JVM 内存上升了,该如何排查?

文章摘要: 本文系统介绍了JVM内存泄漏排查的完整流程。首先通过jstat监控GC行为判断是否存在内存泄漏,利用NMT工具区分堆内/堆外内存问题。核心步骤是使用jmap生成堆转储,并通过MAT工具分析内存快照,重点关注Retained Heap和Dominator Tree定位泄漏对象及其引用链。针对不同场景(堆外内存、Metaspace等)给出专业排查方法,最后强调修复后需验证内存曲线是否恢复正常。文章提供从现象确认到根因定位的checklist,涵盖JVM内存问题的全链路解决方案。

2025-09-30 14:27:37 918

原创 【对比学习】RocketMQ 的异步消息发送和观察者模式中的消息通知有什么区别

摘要: RocketMQ异步消息发送与观察者模式通知在机制上存在本质差异。RocketMQ采用多线程非阻塞架构,通过Broker实现消息持久化和可靠传递,支持高吞吐、分布式扩展,但依赖中间件。观察者模式则是同步阻塞的单线程通知,耦合性强且无内置可靠性保障,适合轻量级单体应用场景。二者在耦合性、可靠性、性能和扩展性方面形成鲜明对比,需根据业务需求选择。

2025-09-30 14:12:28 746

软件开发(后端、前端)面试常考问题: TCP time-wait 相关知识点

详细介绍TCP time_wait状态相关知识点,方便做面试准备和内学习

2025-10-09

空空如也

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

TA关注的人

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