- 博客(359)
- 资源 (53)
- 收藏
- 关注
原创 线上问题排查常用命令
查看内存freefree是查看内存使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。free -h -s 3表示每隔三秒输出一次内存情况,命令如下[1014154@cc69dd4c5-4tdb5 ~]$ free total used free shared buff/cache availableMem...
2020-04-13 16:08:35
3126
1
原创 深入理解JVM - JVM常用命令
jps(JVM Process Status Tool):显示指定系统内所有的HotSpot虚拟机进程jstat(JVM Statistics Monitoring Tool):用户收集HotSpot虚拟机各方面的运行数据jinfo(Configuration Info for Java):实时查看和调整虚拟机各项参数,在JDK9中集成到了jhsdbjmap(Memory Map for ...
2020-01-15 10:59:58
1434
1
原创 为监控而生的多级缓存框架 layering-cache
简介layering-cache是在Spring Cache基础上扩展而来的一个缓存框架,主要目的是在使用注解的时候支持配置过期时间。layering-cache其实是一个两级缓存,一级缓存使用Caffeine作为本地缓存,二级缓存使用redis作为集中式缓存。并且基于redis的Pub/Sub做缓存的删除,所以它是一个适用于分布式环境下的一个缓存系统。支持支持缓存监控统计支持缓存过期时...
2018-10-15 10:06:17
2647
5
原创 MySQL MVCC(多版本并发控制)实现机制深度解析
MVCC是InnoDB专为读已提交(RC)和可重复读(RR)核心思想:为每一行数据维护多个版本(快照),不同事务读取时,根据规则选择对应版本的数据,而非直接读取最新数据;适用场景:仅针对快照读(普通SELECT生效,当前读(INSERTUPDATEDELETE)仍需加锁;解决“读写冲突”,避免传统锁机制中“读阻塞写、写阻塞读”的问题,提升并发性能。核心依赖:MVCC基于行记录隐藏字段(DB_TRX_ID)、Undo Log版本链、Read View可见性规则实现;核心逻辑。
2026-01-27 14:54:58
743
原创 Kafka、RocketMQ、RabbitMQ 事务消息核心差异对比
设计目标差异:Kafka聚焦生产端原子性与Exactly Once,RocketMQ聚焦分布式事务,RabbitMQ仅支持本地Channel事务;实现机制差异:Kafka依赖事务协调器+2PC,RocketMQ依赖半消息+回查,RabbitMQ依赖AMQP协议的Channel事务;场景适配差异:Kafka适配大数据流,RocketMQ适配微服务分布式事务,RabbitMQ适配简单业务的本地事务。
2026-01-23 11:41:24
853
原创 Spring Boot 深度解析
/ 1. 自定义拦截器@Bean// 注册拦截器@Override// 2. 自定义消息转换器(如FastJson替换Jackson)@Override// 移除默认Jackson转换器// 添加FastJson转换器// 3. 自定义视图解析器(Thymeleaf)@Bean// 4. 跨域配置@Override若需要完全替换Spring Boot的默认MVC配置,可添加。
2026-01-23 10:51:16
781
原创 Spring MVC 深度解析
实现接口(或继承注册拦截器到Spring容器,指定拦截路径;// 1. 自定义拦截器@Component// 请求到达处理器前执行@Overrideresponse.getWriter().write("未登录");// 中断请求// 放行// 处理器执行后、视图渲染前执行@OverrideSystem.out.println("处理器执行完成:" + request.getRequestURI());// 视图渲染完成后执行@Override。
2026-01-22 22:13:30
849
原创 HikariCP 深度解析
核心优势:HikariCP 是高性能连接池,核心优势是快、轻量、可靠,Spring Boot 2.0+ 默认推荐使用;性能核心并发容器、零锁设计、精简代码、精细化连接管理;配置核心按 CPU 核心数配置,等于最大连接数,小于数据库连接超时时间;运维核心:监控活跃/空闲连接数、开启泄漏检测、配置合理的超时时间;适用场景:高并发、低延迟的互联网场景优先使用,需精细化监控可结合 Druid。配置:优先使用 Spring Boot 自动配置,核心参数按性能公式设置,避免过度配置;编码。
2026-01-22 16:16:32
658
原创 Docker 深度全解析(容器化核心技术)
镜像是一个只读的、静态的文件包,是创建Docker容器的「模板/蓝本」,包含了运行应用所需的所有内容:应用程序、运行环境、系统库、配置文件、依赖包等。容器是Docker镜像的运行时实例,是一个可读可写的动态环境,是应用程序实际运行的载体。镜像=类,容器=类的实例对象。数据卷是Docker提供的独立于容器的持久化存储目录,是宿主机文件系统上的一个真实目录,可被挂载到容器内的指定路径,实现容器的数据持久化与共享。Docker的网络是为容器提供通信能力。
2026-01-16 12:23:02
609
1
原创 Kubernetes(K8s)深度全解析
A:调和机制是控制器的核心工作模式,无限循环执行「观察-对比-行动」,将实际状态调整为期望状态;是K8s的核心灵魂,所有自动化能力都基于该机制实现。Kubernetes是云原生技术体系的核心,其本质是容器编排与集群管理系统,核心价值是自动化、高可用、弹性伸缩、解耦。本文从核心架构→核心概念→核心工作机制→核心特性→运维配置→使用场景→常见问题,全维度深度解析了K8s,覆盖了从基础到进阶的所有核心知识点。声明式API为灵魂,调和机制为核心,控制器为管控核心,Pod为执行单元。
2026-01-16 11:57:42
1214
原创 架构设计之千万级设备接入云平台方案
支撑千万级设备并发连接、海量消息高吞吐处理、设备状态实时监控、数据可靠存储与高效检索,满足高可用、高弹性、可扩展的物联网平台需求:设备接入层 → 协议适配层 → 消息处理层 → 业务服务层 → 数据存储层 → 监控运维层。
2026-01-15 15:56:13
475
原创 RocketMQ 深度详解
⑤Message:消息载体,封装业务数据。生产环境必用多Master多Slave主从模式,原因:Master负责读写,Slave同步数据,Master宕机后Slave无缝接管,无消息丢失,保障高可用和数据可靠性。Queue的核心作用是实现并行处理,多个Queue分布在不同Broker上,生产者负载均衡发送,消费者并行消费,提升吞吐量和并发能力。如果是「一个Topic一个文件」,Broker需要维护海量的文件映射关系,元数据存储压力大,而且Topic的创建/删除会带来大量的文件创建/删除操作,运维复杂。
2026-01-15 14:31:29
739
原创 Kafka 深度详解
核心组件包括 Producer(生产者,发送消息)、Consumer(消费者,消费消息)、Broker(服务节点,存储和处理消息)、Topic(主题,消息逻辑分类)、Partition(分区,物理存储单元)、Replica(副本,保障高可用)、Controller(控制器,管理集群元数据)。:Topic 是消息的逻辑分类,Partition 是 Topic 的物理存储单元,一个 Topic 可分为多个 Partition;:Offset 是消息在 Partition 内的唯一标识,是一个自增整数;
2026-01-15 11:12:08
722
1
原创 RabbitMQ 深度详解
保障:消费者只有成功处理完消息后,才会告知Broker删除消息,杜绝消费过程中消息丢失的问题,分为两种模式,,所有业务场景均围绕这三个核心价值展开,以下是生产中最常用的核心场景,覆盖99%的业务需求,所有RabbitMQ的消息流转,均基于这四个核心组件完成,是RabbitMQ的核心骨架,,从生产到消费全链路保障消息的可靠性,杜绝消息丢失,这是RabbitMQ的核心优势,各自的路由规则是什么?RabbitMQ的集群架构是保障高可用的核心,所有架构均基于。:RabbitMQ 消息从生产到消费的完整流程是什么?
2026-01-14 23:18:40
1039
1
原创 MQTT 协议深度详解
Topic是 MQTT 的消息路由标识,本质是一个「层级化的字符串」,用于标识消息的类别和流向,相当于消息的「地址」。发布者发送消息时,必须指定一条「主题」,表示「这条消息属于哪个分类」;订阅者想要接收消息时,必须「订阅对应的主题」,表示「我要接收这个分类的消息」;Broker 会根据「消息的主题」,将消息精准推送给所有订阅了该主题的订阅者。QoS是 MQTT 协议的核心可靠性保障机制,表示「消息的投递质量/可靠性等级」,定义了发布者与Broker之间、Broker与订阅者之间的消息投递规则。
2026-01-14 11:37:16
556
原创 Redis 核心业务流程
Redis 启动加载完整核心流程(所有流程的统一入口)Redis 单线程命令执行核心流程(高性能底层根源,所有请求通用)Redis 过期Key清理核心流程(定期删除+惰性删除)Redis 内存淘汰机制执行流程(内存超限兜底)Redis RDB持久化完整核心流程Redis AOF持久化+AOF重写完整核心流程Redis 主从复制完整核心流程(含断点续传)Redis 哨兵模式故障转移完整核心流程Redis Cluster 哈希槽分配+数据迁移核心流程。
2026-01-13 18:41:03
657
原创 Redis 核心详解
高性能内存KV数据库 + 持久化 + 高可用 + 分布式,是互联网后端的核心中间件,无出其右。单线程模型 + 内存操作 + 高效底层数据结构 + 渐进式rehash,四大核心缺一不可。Redis的核心价值:不仅是缓存,更是一套完整的「数据结构解决方案」,覆盖绝大多数业务场景,无需重复造轮子。单机 → 主从(读写分离) → 哨兵(自动故障转移) → Cluster(分布式分片),按需选择,循序渐进。三分部署,七分运维。
2026-01-13 18:08:46
633
原创 架构设计之异地多活架构
异地多活架构的本质是“分层冗余+智能调度+数据一致”接入层通过DNS+网关跨地域冗余,实现流量就近接入与故障漂移;数据层按分类选择同步策略,通过多副本存储与一致性协议,保障核心数据零丢失;业务层无状态化设计,支持跨地域弹性扩容与无缝接管;调度层统一管控,实现故障自动检测、切换、恢复,缩短业务中断时间。异地多活不是“越复杂越好”,而是“适配业务需求的最优解”——核心业务追求极致可用性,非核心业务平衡成本与可用性,最终实现“业务永续、数据安全、体验无感知”的目标。
2026-01-13 10:44:25
319
原创 架构设计之千万级设备接入场景容灾方案
接入层通过多地域/多可用区网关集群,应对设备高并发连接与重连冲击;数据层通过多副本存储、异步传输、跨地域同步,保障核心数据零丢失;业务层通过熔断降级、多副本部署,实现故障隔离与弹性恢复;基础设施层通过网络、电力、存储冗余,筑牢底层保障;依托自动化监控与切换机制,缩短故障影响时间,最终实现“设备接入不中断、核心业务不停止、数据资产不丢失”的目标。要不要我帮你整理一份千万级设备接入容灾 Checklist,涵盖接入层、数据层、业务层等维度的校验项,可直接用于项目容灾落地与审计?
2026-01-12 18:33:32
582
原创 架构设计之微服务治理
用标准化的规则约束分布式架构的复杂性,用体系化的机制保障架构的稳定性,用自动化的工具提升研发和运维效率。治理的核心逻辑:源头做设计管控,运行做容错保障,数据做自治隔离,可观测做问题兜底,安全做全链路防护,交付做高效迭代。治理的核心认知:微服务治理不是「管控」,而是「赋能」,通过治理减少无效内耗、规避架构风险、降低故障成本,最终让技术团队聚焦业务价值的交付。治理的核心节奏:治理是循序渐进的过程,不是一蹴而就的,先解决核心痛点(如稳定性、数据耦合),再逐步完善细节,最终实现全维度的合规治理。
2026-01-12 18:17:20
482
原创 架构设计之架构治理
架构治理的本质是“用规则约束复杂性,用流程保障落地,用数据驱动优化”先定目标:明确量化的治理目标,避免盲目行动;立标准:建立覆盖分层、选型、接口、拆分的统一规范,奠定治理基础;强评审:通过架构评审把控设计环节,提前规避风险;全流程:将治理规则贯穿设计、开发、测试、部署、运维全生命周期;重保障:通过组织、流程、工具确保治理落地,而非“纸上谈兵”;持续迭代:随业务与技术演进优化治理规则,避免“一劳永逸”。
2026-01-12 17:48:16
493
原创 架构设计之微服务拆分
微服务拆分的本质是「以业务领域为锚,以复杂度为尺」定边界:先通过DDD的限界上下文识别业务领域边界,保证服务的高内聚、低耦合,解决「拆什么」的根本问题。调粒度:再通过业务复杂度、变更频率、并发量、团队结构调整拆分粒度,控制分布式成本,解决「怎么拆」的落地问题。终目标:最终实现业务的「独立演进」和技术的「弹性伸缩」,让架构适配业务增长,而非业务适配架构。
2026-01-12 16:25:43
686
原创 Spring 框架 核心架构设计 深度详解
单例模式:Spring Bean 默认都是单例的工厂模式:Spring 主要作用之一就是对Bean的管理,所有Bean的创建都由Spring来负责,从这里来看就是一个工厂模式了。动态代理模式:Spring 主要作用之一AOP,就是通过动态代理模式来实现的,如:事物管理等。策略模式:Spring Bean的自动装配(@Autowired),其实就是策略选择的一种方式。模板方法模式:ApplicationContext体系就是使用了模板方法模式。装饰器模式:一种是类名中含有Wrapper,另一种是类.
2026-01-11 18:40:24
1758
原创 Spring MVC Bean 参数校验 @Validated
Validated是Spring 框架对 JSR303/JSR380(Java 原生参数校验规范)的增强注解,Spring 生态专属注解,功能全面优于JSR原生的@ValidJSR303/JSR380 是Java官方定义的参数校验标准,提供基础校验注解,核心依赖包为实际开发中依赖,是JSR规范的最优实现,扩展了更多实用校验注解,是校验功能落地的核心核心价值:彻底替代硬编码的if/else参数判断逻辑,将参数校验规则与业务逻辑解耦,所有校验规则统一维护在实体类中,大幅精简业务代码。
2026-01-11 16:56:32
861
原创 Spring 事务核心原理 深度解析
事务定义是事务的「规则手册」,定义了事务的所有配置规则,比如事务的传播行为、隔离级别、超时时间、是否只读等,这些规则决定了事务的执行行为。该接口的配置规则,就是我们在事务传播行为:7种,核心配置,决定多个事务方法嵌套调用时,事务的传播方式;事务隔离级别:4种+默认,决定事务之间的隔离程度,解决脏读、不可重复读、幻读问题;事务超时时间:默认-1(永不超时),超过指定时间事务自动回滚,避免长事务占用资源;是否只读。
2026-01-11 16:26:48
1086
原创 Alibaba Sentinel 全解析
✅ 新项目/微服务架构:首选Sentinel,功能更丰富、易用性更高、生态更适配国内环境(Spring Cloud Alibaba);✅ 老项目/Spring Cloud Netflix 生态:继续使用Hystrix,无需迁移,稳定可靠;✅ 核心诉求是热点限流、系统级保护:必须选Sentinel(Hystrix无此功能);✅ 核心诉求是简单熔断降级:两者均可,Sentinel配置更简单。
2026-01-11 15:29:10
1017
原创 Hystrix 注解式完整实战示例
无侵入性:通过注解配置,无需修改业务逻辑代码,优雅实现熔断降级配置灵活:支持方法级、类级、全局级三层配置,满足不同场景需求易用性高:SpringCloud无缝整合,注解式开发成本极低,入门即可上手功能完整:注解支持熔断、隔离、降级、超时、异常忽略等所有核心能力。
2026-01-11 11:57:00
784
原创 服务重试Retry解析
服务重试是分布式系统应对瞬时故障的容错机制,核心是「精准识别故障类型+合理重试策略+幂等性设计」,结合熔断、限流、降级,才能安全落地。
2026-01-11 11:18:19
817
原创 分布式锁 4种主流实现方式
Redis+Redisson(生产首选,极致性能)、ZooKeeper(强一致性兜底)、数据库(应急入门)、RedLock(终极强一致)。
2026-01-11 09:18:41
765
原创 Redisson 分布式锁 实现核心原理
✅ 1. 互斥性:保证同一时间,只有一个线程能持有锁;✅ 2. 原子性:加锁/解锁的所有逻辑通过Lua脚本原子执行,无并发漏洞;✅ 3. 可重入:基于Hash结构实现,同一个线程可多次加锁,不会死锁;✅ 4. 防误删:解锁前先校验锁的归属,绝对不会删除其他线程的锁;✅ 5. 自动续期:看门狗机制,锁过期时间动态跟随业务执行时长,防止提前释放;✅ 6. 防死锁:自带过期时间,线程宕机后锁会自动释放;✅ 7. 自旋重试:加锁失败自动重试,降低开发成本;
2026-01-11 08:59:07
718
原创 【XXL-JOB】 GLUE模式 底层实现原理
编译出字节码后,执行器会用XXL-JOB内置的「自定义类加载器」XXL-JOB的自定义类加载器,是「独立的、临时的、任务隔离的每个GLUE任务的脚本,都会被专属的类加载器加载,不同任务之间完全隔离,无类冲突;脚本修改后,重新编译的字节码,会被新的类加载器加载,完美实现「热更新」,无需重启执行器;类加载完成后,执行完毕,类加载器会被回收,不会污染执行器的核心类加载器,无内存泄漏风险。
2026-01-10 23:41:45
1154
原创 【XXL-JOB】执行器 Netty服务 & Tomcat 进程+资源共用详解
XXL-JOB执行器的Netty服务 + 项目Tomcat服务 → 同一个Java进程、同一个PID;一个进程监听两个端口(如8080/Tomcat、9999/Netty),端口隔离、各司其职,无冲突。
2026-01-10 22:59:08
1094
原创 Caffeine 深度解析
Caffeine是一款基于Java 8的高性能本地缓存框架,作为Guava Cache的升级版本,它结合了Java 8的Lambda表达式和CompletableFuture异步特性进行优化。核心优势包括极致的读写性能、超高缓存命中率(采用自研W-TinyLFU淘汰算法)、轻量级无依赖、丰富功能特性和内存友好设计。支持多种缓存策略(大小/时间/引用过期)和工作模式(手动/自动/异步加载),并提供并发控制、缓存刷新、淘汰监听、统计功能等高级特性。Caffeine的底层采用分段式并发哈希表和无锁化设计,通过惰性
2026-01-10 20:24:00
1132
原创 JVM 核心知识点总结
一块极小的内存空间,也叫PC寄存器,JVM规范中唯一不会抛出内存溢出(OutOfMemoryError)的区域。每个线程创建时都会分配一个虚拟机栈,栈内存储的核心单元是栈帧(Stack Frame),一个栈帧对应一个Java方法的一次调用过程。方法调用时,栈帧入栈;方法执行完毕,栈帧出栈,栈帧的生命周期与方法调用一致。虚拟机栈服务于Java方法,本地方法栈服务于native本地方法。JVM启动时创建,是JVM中内存占比最大、最核心的区域,也是垃圾回收(GC)的主战场。
2026-01-10 10:28:32
981
原创 深入理解JVM-程序计数器核心解析
程序计数器是JVM的「执行导航器」,它解决了「字节码指令如何顺序执行」「多线程切换如何断点续跑」「方法调用如何正确返回」三大核心问题,是JVM运行的基石。程序计数器是JVM的基石组件,不是可选的优化项,而是必须存在的核心内存区域;它的核心价值是解决了「指令执行、多线程调度、方法调用返回」三大核心问题;所有替代思路均存在致命缺陷,工程上完全不可行,程序计数器是最优解;简单的,往往是最好的。
2026-01-10 09:12:11
585
原创 ThreadLocalMap 中弱引用被 GC 后的行为机制解析
ThreadLocalMap 通过 key 使用弱引用避免 ThreadLocal 本身泄漏,但 value 依然是强引用;当 key 被 GC 后,value 并不会立刻回收,而是依赖后续 ThreadLocal 操作进行惰性清理。因此,并不存在“GC 后线程还能获取到值”,只有“值暂存在但已不可达”,这也是为什么必须显式调用 remove() 的根本原因。
2026-01-06 11:38:50
698
原创 MySQL的BTree索引和Hash索引的区别
维度BTree 索引Hash 索引是否有序✅ 是❌ 否支持范围查询✅ 是❌ 否支持模糊匹配(LIKE)✅ 是❌ 否支持排序✅ 是❌ 否查询性能稳定 O(log n)理想情况下 O(1)存储引擎默认支持Memory(默认)💡 选择合适的索引类型能够显著提升查询效率,应结合实际业务场景进行优化设计。
2025-06-30 10:26:38
705
CAN技术规范
2012-08-25
汽车电子控制系统实例
2012-08-25
logback 中文手册
2017-03-30
ScreenToGif.rar
2020-03-13
consul_1.7.3_windows\mac\linux.zip
2020-06-02
git-flow-plus-4idea-1.0.7.zip
2020-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅