- 博客(40)
- 收藏
- 关注
原创 深入剖析AQS的底层源码及其在JUC工具类中的应用
本文深入剖析了Java中AQS(AbstractQueuedSynchronizer)的底层实现原理及其在JUC并发工具类中的应用。主要内容包括:1)AQS采用模板方法模式,通过volatile状态变量和CLH队列实现同步机制;2)详细分析了独占模式和共享模式的核心源码,包括锁获取、释放及队列管理;3)探讨了条件变量的实现原理;4)展示了AQS在ReentrantLock、CountDownLatch等工具类中的具体应用。AQS通过精妙的设计实现了高效、灵活的同步机制,是Java并发编程的核心基础组件。
2025-09-28 16:18:21
617
原创 深入剖析Spring Boot / Spring 应用中可自定义的扩展点
本文总结了Spring框架中常用的扩展点,涵盖Web层、消息转换、Servlet/Filter、Bean容器、AOP、事务安全、嵌入式容器、监控等多个方面。重点介绍了HandlerInterceptor、WebMvcConfigurer、自定义参数解析器、统一响应处理、全局异常处理等核心组件的实现方式,并提供了5个可直接使用的完整示例代码,包括请求日志过滤器、用户参数解析器、统一响应包装、自定义消息转换器和基于注解的代理生成等实用功能。这些扩展点能帮助开发者灵活定制Spring应用行为,满足不同业务场景的需
2025-09-04 12:25:43
1070
原创 深入剖析MyBatis-Plus可扩展点的使用
本文总结了MyBatis-Plus的十大核心扩展点,包括:1)SQL注入器实现通用方法;2)MetaObjectHandler处理自动填充;3)TypeHandler处理复杂类型转换;4)插件链实现分页/多租户等功能;5)原生MyBatis插件;6)多租户实现;7)动态表名;8)ID生成器;9)代码生成器模板;10)其他扩展如逻辑删除等。每个扩展点都提供了核心代码示例和实现思路,并强调了版本兼容性、插件执行顺序等注意事项,建议结合官方文档和示例进行实践。
2025-09-04 12:05:08
589
原创 剖析graph-rag中最核心的一步:切片文本如何输入到大模型并且构建整体的关系
本文提出了一种基于大模型的信息抽取与知识图谱构建方法,采用四阶段处理流程:1)分块抽取实体和关系提及;2)全局实体对齐;3)关系汇总;4)Neo4j入库。通过分块策略保证上下文连贯,要求模型输出包含证据位置的结构化结果。关键创新点包括:实体链接时的候选裁决机制、关系证据聚合算法,以及支持溯源的存储设计。文章详细说明了文本切割策略、提示词模板设计、核心算法实现和Neo4j图模式,并提供了可直接复用的Python代码框架,强调证据留存和可审计性。该方法在保证抽取质量的同时,通过批处理、缓存等技术控制计算成本。
2025-08-26 11:49:54
954
原创 基于LangChain + Milvus 实现RAG
本文介绍使用LangChain和本地部署的MilvusLite构建文本检索系统,采用HuggingFace的gte-large-zh模型生成嵌入向量。主要内容包括:系统设计目标(大文本处理流程)、环境配置要求、关键实现细节(文本分块策略、嵌入向量生成方法)、完整代码示例(包含文本入库和查询功能),以及生产环境扩展建议。特别强调了chunk大小控制(不超过512token)、MilvusLite的本地文件存储特性等注意事项,并提供了常见问题排查方法。该方案适合本地原型开发,文末还给出了向生产环境迁移的优化方向
2025-08-22 18:47:41
778
原创 本地 Graph-RAG(图 + RAG) 部署与使用落地方案
本文提出了一种Graph-RAG方法,通过结合向量检索和图数据库增强检索能力。系统架构包括:1)使用gte-large-zh模型生成文本切片嵌入并存入Milvus;2)将切片作为节点存入Neo4j图数据库并建立多种关系;3)查询时先进行向量检索获取初始节点,再通过图遍历扩展上下文;4)最终将检索结果拼接提示送入本地生成模型完成回答。 文章详细介绍了部署方案(Docker Compose)、数据建模、入库流程和检索算法,提供了完整的Python实现示例。关键优化策略包括:建立多种节点关系、设计融合排序算法、控
2025-08-22 18:23:10
1126
原创 深入剖析Seata如何实现分布式事务(主要基于AT模式)
undo_log(回滚镜像)+ 与业务同一本地事务写入:保证了“要么有业务数据 + undo_log,要么两者都没有”,从而在需要回滚时能精确恢复本地数据。GitHubTC 的全局锁(lock keys)集中管理写并发:同一资源不会被两个活跃全局事务并发提交,避免写冲突。阿里云短事务本地提交 + 后续中心协调(相比 XA 减少了长锁占用):通过尽快提交本地事务释放 DB 资源,同时保留 undo_log 做补偿,权衡了性能与一致性。思否逆向 SQL 引擎 + recover/retry 机制。
2025-08-11 18:28:48
1086
原创 基于Hadoop3.3.4+Flink1.17.0+FlinkCDC3.0.0+Iceberg1.5.0整合,实现数仓实时同步mysql数据
本文详细介绍了Hadoop 3.3.4和Flink 1.17.0的安装部署流程,并整合了Flink CDC 3.0.0与Iceberg 1.5.0。主要内容包括:1)Hadoop集群部署,包括环境准备、配置、分布式部署及启动验证;2)Flink安装及与Hadoop集成,配置YARN模式运行;3)Flink CDC 3.0.0连接器安装,实现MySQL数据变更捕获;4)Iceberg 1.5.0集成,配置Hadoop Catalog存储数据;5)完整示例展示如何通过SQL实现MySQL到Iceberg的实时数
2025-07-28 12:09:46
1373
2
原创 深入剖析Elasticsearch倒排索引,Query DSL查询使用场景分析
Elasticsearch架构与查询优化全解析 本文系统介绍了Elasticsearch的核心架构、索引设计与查询优化。主要内容包括: 架构解析:分布式集群、分片机制、写入/读取流程 索引设计:倒排索引原理、字段类型选择、分片策略 查询优化:DSL分类、典型查询场景、性能优化建议 实战案例:基于用户日志系统的查询DSL应用 重点突出了Elasticsearch的高性能查询机制,包括倒排索引、Segment并行查询、Filter缓存等技术原理,并提供了业务场景下的查询优化方案。通过完整的用户日志系统案例,展示
2025-07-09 18:00:21
1286
原创 深入剖析MYSQL MVCC多版本并发控制+ReadView视图快照规避幻读问题
MySQL InnoDB的MVCC机制与幻读解决方案 摘要: 本文深入剖析了InnoDB的MVCC(多版本并发控制)实现机制,通过UndoLog存储历史版本和ReadView判断可见性,解决了读写并发问题。详细分析了MVCC在RC/RR隔离级别下的工作原理,包括版本链构建和可见性判断算法。重点探讨了InnoDB解决幻读问题的双重机制:MVCC通过快照隔离避免非锁定读的幻读,Next-KeyLock通过间隙锁防止插入操作导致的幻读。通过事务场景测试验证了不同隔离级别的表现,并介绍了INFORMATION_SC
2025-07-04 20:00:11
1234
原创 深入剖析Nacos服务发现与注册,及如何基于LoadBalancer实现负载均衡
本文深入解析Nacos微服务架构的核心机制,主要涵盖以下内容: 架构设计:Nacos由服务发现(Naming)、配置管理(Config)和运维控制台三大子系统组成,支持MySQL/嵌入式存储,提供CP(配置)+AP(服务)混合一致性模型。 权重负载均衡:详细剖析客户端实现的加权随机算法,包括服务注册携带权重、变更实时推送、灰度发布等应用场景,对比Ribbon与SpringCloud LoadBalancer的实现差异。 配置管理全流程:从客户端连接、长轮询机制到动态刷新,解析配置的命名空间隔离、多格式支持和
2025-06-29 18:57:11
1689
原创 深入剖析Nginx架构及其不同使用场景下的配置
Nginx高性能架构与核心配置解析 摘要: 本文系统剖析了Nginx的高性能架构原理与核心配置实践。首先解析其Master-Worker多进程模型、事件驱动机制和模块化设计,重点阐述异步非阻塞IO处理流程和内存池优化技术。在配置方面,详细说明虚拟主机、反向代理、负载均衡、限流控制等场景的最佳实践,特别针对跨域问题提供两种解决方案:CORS响应头配置和反向代理转发。最后深入讲解令牌桶限流算法原理,分析其在Nginx中的实现方式。全文通过架构图、配置示例和代码片段,完整呈现Nginx作为高性能Web服务器的核心
2025-06-26 17:21:28
1018
2
原创 深入剖析Spring Cloud Sentinel,如何实现熔断降级,请求限流
摘要:阿里巴巴开源的SpringCloud Sentinel组件为微服务架构提供流量防护能力,主要包括限流、熔断和系统自适应保护三大核心功能。其架构基于责任链模式的SlotChain机制,通过FlowSlot、DegradeSlot等插槽实现不同维度的防护策略。Sentinel支持QPS/线程限流、慢调用/异常比例熔断等策略,采用滑动窗口统计指标,并可通过Dashboard进行规则管理。与SpringBoot整合时,通过@SentinelResource注解定义资源并配置降级处理,同时支持动态规则推送至Na
2025-06-17 18:39:26
938
原创 深入剖析Spring Cloud Gateway,自定义过滤器+断言组合成拦截器链实现Token认证
摘要:SpringCloud Gateway作为SpringCloud官方推出的新一代网关,基于WebFlux+Reactor模型实现高性能异步非阻塞处理。其核心架构包含路由匹配(Predicate)、过滤器链(Filter)和转发机制三大模块。Predicate用于路由匹配判断,支持Path、Method、Header等丰富条件;Filter处理请求/响应,分全局和路由两种类型,通过责任链模式执行。开发者可以自定义Predicate和Filter实现特定业务逻辑,如JWT认证、日志记录等。与Zuul相比,
2025-06-17 12:29:56
1720
2
原创 深入剖析Redis高性能的原因,IO多路复用模型,Redis数据迁移,分布式锁实现
Redis单线程高性能探秘与集群高可用实现 摘要:Redis虽采用单线程处理命令,却能达到百万级QPS,其高性能源于五大核心设计:纯内存操作、无锁单线程模型、高效I/O多路复用、精炼数据结构及I/O多线程辅助。底层采用epoll事件驱动机制实现高并发连接处理。在集群场景中,Redis通过Gossip协议检测节点状态,当主节点宕机时自动触发故障转移,由从节点接替服务。数据迁移采用分槽机制,通过MIGRATE命令实现键值搬迁,期间客户端可通过ASK/MOVED重定向保持正常访问。对于分布式锁场景,建议使用Red
2025-06-13 16:27:26
989
原创 深入剖析Redis Cluster集群,Redis持久化机制,Redis数据类型及其数据结构
《Redis高可用集群部署与核心数据类型实践指南》摘要:本文系统讲解了Redis高可用部署方案和数据类型的最佳实践。在高可用方面,推荐采用6主6从的集群架构,每个主节点管理2738个slot,并详细介绍了端口规划、目录结构、配置参数和自动容灾机制。在数据类型方面,深入解析了String、Hash、List等核心类型的底层数据结构和适用场景,特别强调BitMap在亿级用户签到场景中的高效应用——通过分桶设计将单用户年签到数据压缩至46B,结合Lua脚本实现连续签到统计。全文通过大量代码示例(如Jedis操作各
2025-06-13 15:20:14
1396
原创 深入剖析JVM垃圾回收,高并发场景JVM性能调优,内存泄露分析,以及如何避免OOM
/ 永远不删除使用不带失效机制的 HashMap 实现缓存对象引用被长期持有静态变量持有超大量业务对象永远不清除 → 永远强引用 →内存泄漏阶段方法判断依据GC 日志监控Pause Full次数增多、heap used 无明显下降G1 Full GC 仍回收少,频繁触发Heap Dump 分析MAT “Leak Suspects”、GC Roots 路径找到泄漏对象如源码定位分析引用链代码,定位缓存/静态变量明确泄漏 root 来源修复验证增加缓存淘汰策略 + 重新监控。
2025-06-08 18:15:38
1108
原创 深入剖析MySQL锁机制,多事务并发场景锁竞争
锁定聚簇索引中的一条具体记录。锁住两条索引记录之间的范围(gap),但不包括已有的记录。即锁住记录本身其前面的间隙关键点内容锁竞争由事务访问冲突资源引发,可能阻塞回滚自动或手动撤销事务操作,使用 Undo 日志还原死锁检测InnoDB 内部维护等待图,自动检测并终止代价小的事务调试工具、慢查询日志等。
2025-06-07 18:59:42
1099
原创 深入剖析MySQL存储架构,索引结构,日志机制,事务提交流程
frm(旧版本)记录表结构MySQL 8 后使用数据字典替代.frm| SQL层 |↓| 查询执行器 → 调用引擎 | ----> | B+树定位主键页 |↓ ↓| 页进入 Buffer Pool |<----| 磁盘 I/O(如未命中) |↓| 写 Undo Log(支持回滚) |↓| 写 Redo Log(支持恢复) |↓| 修改内存页(Buffer Pool)|↓| 提交事务 COMMIT || - Redo 持久化 || - Binlog 写入 |↓。
2025-06-07 17:40:08
1730
原创 深入剖析HBase架构
HBase核心机制与优化策略摘要 HBase采用分布式架构,通过RegionServer集群处理读写请求,关键组件包括客户端、ZooKeeper、HMaster、RegionServer、WAL、MemStore和HFile。读写流程中,客户端先通过ZooKeeper定位目标Region位置,然后直接与对应RegionServer交互。写操作需先写WAL确保可靠性再写入MemStore;读操作依次查询MemStore、BlockCache和HFile。为提升性能,HBase采用BloomFilter、Blo
2025-05-30 18:18:11
1335
原创 Flink架构概览,Flink DataStream API 的使用,FlinkCDC的使用
Flink是一个高性能的分布式流处理引擎,支持精确一次(Exactly-Once)语义,广泛应用于大数据实时处理场景。其核心架构包括Client、JobManager、TaskManager和Slot,分别负责作业提交、调度、任务执行和资源管理。Flink与Hadoop生态系统深度集成,能够与HDFS、Hive、Kafka、HBase、YARN和Zookeeper等组件协同工作,构建完整的大数据处理链路。例如,Flink可以直接读取HDFS中的数据,将计算结果写入Hive表,或通过Kafka进行实时数据采集
2025-05-21 17:40:20
2342
原创 旋转位置RoPE编码详解
步骤操作输入维度5个token,每个512维权重矩阵子空间划分将512维划分为256个二维子空间旋转矩阵生成基于位置 mm 和频率 θi=10000−2i/512θi=10000−2i/512旋转后Q/K每个二维子空间独立旋转,拼接后保持512维注意力分数内积隐式编码相对位置 n−mn−m通过旋转位置编码,模型无需显式学习位置偏差,直接通过几何变换捕捉相对位置关系,提升长序列建模能力。编码类型实现关键点正余弦编码预计算位置编码矩阵,动态切片适配序列长度,通过广播机制高效相加。旋转编码(RoPE)
2025-05-21 12:34:55
1484
原创 深度解析 HDFS与Hive的关系
特性HDFSHive存储对象文件(Block)表(逻辑)元数据内部内存 & FsImage访问方式SQL容错机制Block 副本、NN HA依赖 HDFS 容错执行模式存储为主执行为主(借助 MapReduce/Tez/Spark)阶段类型特征编译阶段类似数据库编译器语法 → 语义 → 优化 → 物理计划执行阶段类似大数据任务Tez/Spark/MR 执行 DAG,有效并行计算元数据阶段类似数据库 Catalog所有数据路径均依赖 Metastore。
2025-05-20 18:37:21
1424
原创 深度剖析ZooKeeper
ZooKeeper是一个分布式协调服务,广泛应用于分布式系统中的配置管理、命名服务、分布式锁和领导选举等场景。其架构采用主从模式(Leader-Follower),通过ZAB协议(ZooKeeper Atomic Broadcast)实现数据一致性。ZooKeeper的核心功能包括集群内部通信、数据同步、容错处理和数据一致性保障。在Hadoop生态中,ZooKeeper用于HDFS高可用(HA)中的NameNode选主、YARN ResourceManager HA、HBase Master和RegionS
2025-05-20 12:43:54
1311
原创 【深入Spring系列】源码级深入剖析SpringBoot如何实现自动装载
SpringBoot的自动装载(AutoConfiguration)是其核心功能之一,通过简化配置,使开发者能够快速搭建项目。其实现主要依赖于SpringFramework的条件注解机制和SpringBoot的SPI扩展机制。自动装载的核心机制包括SpringFactoriesLoader加载META-INF/spring.factories文件中的自动配置类,以及@EnableAutoConfiguration注解和AutoConfigurationImportSelector类的配合使用。条件注解如@C
2025-05-14 19:06:40
2127
原创 Kafka原理深度剖析
Kafka的消息流转过程从生产者(Producer)到消费者(Consumer)涉及多个关键步骤。生产者通过Producer API将消息发送到指定Topic,消息经过序列化、分区、批量处理后,通过网络发送到Broker集群。Broker集群中的Leader Broker接收消息并写入本地日志,同时将消息复制到Follower副本,根据配置返回ACK。ZooKeeper或KRaft负责元数据管理、Leader选举和Topic/Partition管理,确保集群健康与一致性。消费者通过Consumer API订
2025-05-13 18:16:38
1261
原创 DeepSeek MoE模型解析和基于pytorch的代码实现
DeepSeekMoE模型基于专家混合(Mixture of Experts, MoE)架构,通过动态路由机制实现计算资源的智能分配。其核心设计包括稀疏专家激活、门控网络创新、专家并行策略和DeepSeek特色改进。稀疏专家激活通过每个输入token仅激活top-k个专家,显著提高计算效率。门控网络引入随机噪声和TopK操作,确保路由的探索性和稀疏性。专家并行策略通过专家分片和动态负载均衡,优化资源利用。DeepSeek的特色改进包括层级专家结构、专家容量缓冲和梯度重标定,进一步提升模型性能。模型训练采用专
2025-05-12 14:37:00
817
原创 BERT底层原理解析及基于pytorch的代码实现
BERT(Bidirectional Encoder Representations from Transformers)是自然语言处理领域的里程碑模型,通过大规模无监督预训练获取深度双向语言表示。其核心架构基于Transformer编码器,采用多头自注意力和前馈网络,并通过残差连接和层归一化增强模型性能。BERT通过掩码机制实现双向上下文建模,突破传统语言模型的单向限制。预训练任务包括掩码语言建模(MLM)和下一句预测(NSP),前者通过掩盖部分输入并最大化条件概率,后者通过二分类判断句对连贯性。BERT
2025-05-10 20:39:37
1423
原创 SpringBoot启动流程详细分析
SpringBoot通过多种设计模式实现了高效、灵活的框架设计。核心设计模式包括模板方法、工厂方法、单例、代理、建造者、观察者、责任链和策略模式,这些模式在SpringBoot的启动流程和组件管理中起到了关键作用。例如,模板方法模式在SpringApplication.run()中定义了统一的生命周期骨架,而工厂方法模式则根据应用类型创建不同的ApplicationContext。SpringBoot的启动流程从main()方法开始,经过环境准备、上下文创建、Bean定义注册、上下文刷新、Web容器启动等步
2025-05-09 17:42:40
785
原创 Transformer底层原理解析及基于pytorch的代码实现
Transformer是自然语言处理领域的革命性架构,其核心设计摒弃了循环结构,采用自注意力机制实现全局依赖建模。主要组件包括自注意力机制、多头注意力、位置编码、残差连接与层归一化。自注意力机制通过查询矩阵(Q)、键矩阵(K)和值矩阵(V)计算注意力权重,多头注意力则并行多个注意力头以捕获不同子空间信息。位置编码通过正弦函数引入序列位置信息,弥补了无循环结构的不足。编码器-解码器架构由多个相同层堆叠,每层包含自注意力和前馈网络。基于PyTorch的实现展示了位置编码、多头注意力、前馈网络和Transform
2025-05-09 17:05:16
2035
原创 GAN生成对抗网络原理解析及基于pytorch的代码实现
生成对抗网络(GAN)通过博弈论框架实现数据生成,其核心是生成器(Generator)与判别器(Discriminator)的对抗训练:1)双网络架构 - 生成器(G):将随机噪声z映射到数据空间,G(z) → 伪样本 - 判别器(D):区分真实数据(P_data)与生成数据(P_g),输出概率值 - 目标函数(极小极大博弈): $$ \min_G \max_D V(D,G) = \mathbb{E}_{x\sim p_{data}}[\log D(x)] + \ma
2025-05-08 14:34:42
1154
原创 LSTM底层原理解析及基于pytorch的代码实现
长短期记忆网络(LSTM)是RNN的里程碑式改进,专为解决长期依赖问题而设计。其核心创新在于引入门控机制与细胞状态。1)细胞状态(Cell State)- 信息高速公路:贯穿整个时间序列的水平状态线- 数学表达式:- 与Transformer中的残差连接有相似功能(梯度高速公路)2)三重门控系统3)候选记忆计算- 使用tanh激活函数将值压缩到[-1,1]范围- 与输入门共同决定新记忆的写入量。
2025-05-07 19:17:18
1844
原创 RNN循环神经网络底层原理详细分析及基于pytorch的代码实现
嵌入层将离散字符索引映射为连续向量空间- 参数:`num_embeddings`(词汇表大小), `embedding_dim`(隐藏层维度)- 创建GRU循环层(可替换为LSTM)- `batch_first=True` 表示输入形状为 `(batch, seq, feature)`- 输出形状:`(batch, seq, hidden_size)`- 初始化隐藏状态为全零张量- 形状:`(num_layers, batch_size, hidden_size)`(本例单层)
2025-05-06 14:36:07
782
原创 CNN卷积神经网络底层原理详细分析及基于pytorch的代码实现
`Conv2d`参数详解:- `1`: 输入通道数(MNIST为灰度图)- `32`: 输出通道数(特征图数量)- `padding=1`: 在输入周围填充1圈0,保持空间分辨率(计算公式:`H_out = (H_in + 2*padding - kernel_size)/stride + 1`)- `MaxPool2d(2,2)`:使用2x2窗口,步长2,输出尺寸减半。
2025-05-03 21:02:32
1206
原创 强化学习PPO算法逻辑剖析,基于PyTorch实现PPO算法
1. 数据收集:使用当前策略与环境交互,收集轨迹数据2. 优势估计:计算每个状态动作对的GAE优势值3. 策略评估:计算旧策略的动作概率 \( \pi_{\theta_{\text{old}}}(a|s) \)4. 多轮更新:对采样的数据执行多次小批量更新(通常4-10次)5. 策略改进:通过Clipped目标函数优化策略和值函数。
2025-05-03 18:39:43
1053
原创 BPE算法详细实现思路与代码解析
1)目标:将文本拆分为子词(Subword)单元,平衡词汇表大小与未登录词(OOV)问题。2)核心策略:1. 从基础字符(如字母)开始,逐步合并高频相邻字符对,形成更大的子词单元。2. 通过迭代合并,构建一个覆盖常见模式的词表,同时保留处理未知组合的能力。
2025-05-03 18:18:33
1085
原创 基于PyTorch框架的KV Cache实现原理和详细代码解析
在大型语言模型的推理过程中,KV Cache(键值缓存)是优化自回归生成效率的核心技术。以下是基于PyTorch框架的KV Cache实现原理和详细代码解析。
2025-04-30 18:30:06
868
原创 DeepSeek的MoE模型和GPT系列模型对比
DeepSeek:“专用-通用融合”,通过MoE+RL技术实现任务定向优化(如R1专注推理,V3整合通用能力)。GPT:“规模优先”,依赖参数扩展和通用训练数据提升性能。
2025-04-30 18:05:08
662
原创 深入剖析 MySQL 事务实现机制,结合核心组件和关键技术点,通过技术原理与工程实践结合的方式进行讲解。
实现 **WAL**(Write-Ahead Logging):先写日志后改数据。- **日志格式**:物理逻辑日志(Physical Logical Log)- **Next-Key Lock**:Record + Gap(默认锁算法)- **Undo Log**(撤销日志):实现回滚和 MVCC。- **Redo Log**(重做日志):保证持久性与原子性。- **DB_TRX_ID**(6字节):最近修改事务ID。- **DB_ROLL_PTR**(7字节):回滚指针。
2025-04-30 17:17:04
931
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人