- 博客(126)
- 资源 (1)
- 收藏
- 关注
原创 深度解析Elasticsearch网络通信原理:节点协同与链接机制
ES的网络通信原理本质是“分层设计+资源隔离”的体现:通过HTTP与Transport协议的分层,实现外部交互与内部协同的隔离;通过13个链接的功能拆分,实现控制任务与数据任务的隔离,最终达成“高可靠、低延迟、高吞吐量”的通信目标。对运维与开发人员而言,这一设计带来两点核心启示:① 集群部署时,需确保9300端口(Transport协议)的通信畅通,避免防火墙阻断节点间链接,否则会导致集群分裂;② 高并发场景下,可通过调整。
2025-12-14 18:52:33
1035
原创 深入理解Elasticsearch内部线程池:类型与核心作用解析
ES内部线程池是集群并发能力的核心支撑,其通过“基础类型+专用场景”的分层设计,实现了任务的高效调度与资源隔离。从缓存线程池的临时任务处理,到固定线程池的核心业务支撑,再到search、bulk等专用线程池的场景化优化,每种线程池都有其不可替代的作用。对于ES开发者与运维人员而言,理解线程池的类型与作用,不仅能帮助快速定位性能问题(如线程池拒绝导致的请求失败),更能通过合理调优让集群发挥出最佳性能。线程池的优化本质是“资源与业务的匹配”,只有结合实际业务场景与硬件资源,才能让ES的并发能力最大化。
2025-12-14 18:42:11
858
原创 Redis序列化生产实践:从选型到落地的案例指南
业务类型推荐方案理由通用微服务跨语言兼容、运维友好Java内部系统Kryo极致性能、零依赖高并发核心链路Protobuf字节级优化、强类型校验内存敏感场景压缩比高、轻量级。
2025-12-03 23:34:00
655
原创 深入ES内核:索引分片的源码解析与实践思考
ES索引分片的源码逻辑围绕“创建-分配-路由-迁移”的生命周期展开,核心依赖(创建)、(分配)、(路由)三大服务类,通过集群状态同步实现分布式协调。结合源码解析,给出以下实践建议:分片数规划:主分片数需结合数据量和节点数设计(如3节点集群建议主分片数为3或6),避免分片过多导致资源浪费,或分片过少无法水平扩展;副本配置:副本数建议为1-2个,过多会增加写入压力,过少则降低可用性;路由优化:查询频繁的场景可自定义路由字段(如用户ID),实现数据按业务维度分片,减少跨分片查询开销;迁移控制:通过调整。
2025-11-30 21:33:49
655
原创 深入MySQL JOIN原理:从算法到优化的全解析
MySQL JOIN查询性能优化指南 本文深入剖析了MySQL中JOIN操作的底层原理与优化策略。首先解析了JOIN的核心概念,包括驱动表与被驱动表的区别,以及四种常见JOIN类型的特点。重点讲解了三种JOIN算法:嵌套循环连接(适用于小表关联)、哈希连接(大表关联的解决方案)和合并连接(有序表的高效匹配方式)。文章提供了实用优化建议:确保被驱动表关联字段建立索引、合理选择驱动表、避免低效写法、调整内存参数等。最后通过实际案例展示了从慢查询到优化的完整过程,将执行时间从8秒优化至0.3秒。核心启示在于通过合
2025-11-24 00:40:55
619
原创 Elasticsearch高阶用法实战:从数据建模到集群管控的极致优化
数据建模是根基:好的映射设计能从根源避免性能问题,比后续调优更高效;集群管控是保障:自动化运维(ILM)和资源隔离(分片分配)是大规模集群稳定运行的关键;查询优化是核心:缓存利用和预聚合是突破并发瓶颈的有效手段,让ES从“能查”升级为“快查”。
2025-11-16 12:54:42
1069
原创 深度剖析Elasticsearch数据写入与读取:从分片同步到核心组件协同
本文深入解析Elasticsearch(ES)的数据读写流程核心机制。在写入方面,ES采用"路由→主分片写入→副本同步→持久化"的分步流程,通过translog保障数据可靠性,利用OSCache实现近实时写入。读取过程则遵循"查询→获取"两阶段模式,主副分片协同工作确保高效查询。文章详细剖析了translog的事务日志特性和OSCache的性能加速作用,并给出针对性优化建议:批量写入、调整refresh间隔、增加副本数等。通过对底层流程的拆解,揭示了ES实现高吞吐、近
2025-11-16 12:01:45
603
原创 深入Elasticsearch集群核心:启动、选主、元数据与节点重启全解析
Master是核心枢纽:选主机制的“最小主节点数”配置是避免脑裂的关键,生产环境中候选主节点数建议设为3个(确保高可用)。元数据是同步基准:所有节点的操作都以集群元数据为基准,Master的“原子修改+广播同步”确保全集群状态一致。分片恢复是容错保障:节点重启时的分片状态切换和Index Recovery机制,确保数据不丢失、服务不中断,是ES高可用的核心体现。
2025-11-16 11:53:28
670
原创 MySQL查询一行数据为何变慢?深度排查与优化指南
MySQL查询单行数据变慢的典型问题排查 摘要:本文针对MySQL中"查询一行数据变慢"的常见现象,系统分析了5大潜在原因及解决方案。核心排查路径包括:1)检查执行计划异常(全表扫描/索引失效);2)评估索引健康度(碎片化/缓冲池命中);3)排查锁竞争(行锁/MDL锁);4)优化数据存储(大字段拆分);5)检查资源配置(CPU/内存/磁盘)。通过案例演示了从普通索引升级为唯一索引的优化过程,将查询耗时从300ms降至5ms。文章强调应遵循"执行计划→索引→锁→存储→资源&quo
2025-11-01 21:36:38
693
原创 MySQL ORDER BY 深度解析:索引排序规则与关键配置参数阈值
MySQL排序性能优化关键点:索引匹配和参数调优是两大核心。索引需满足最左前缀、方向一致等规则才能避免Using filesort;关键参数sort_buffer_size决定内存/临时文件排序边界,需合理设置避免OOM。实战案例显示,通过调整sort_buffer_size并结合覆盖索引,排序耗时可从500ms降至10ms。优化应优先考虑索引设计,参数调整作为补充手段。
2025-10-13 23:40:01
670
原创 AI相关知识扫盲
文章摘要: 本文系统解析了AI系统的四大核心组件——LLM(认知大脑)、Agent(任务管家)、MCP(通信协议)和Workflow(流程中枢),阐明了各自的能力边界与协同机制。Workflow作为新增核心,通过可视化编排多任务流程、条件分支和跨组件调度,实现复杂任务的全局规划。通过企业财报生成等案例,展示了四者如何协同构建端到端智能流程,并澄清了6个常见误区。未来趋势包括AI驱动的低代码Workflow、多级流程嵌套以及组件深度协同,推动企业级自动化场景的高效落地。(149字)
2025-10-10 22:48:50
803
原创 MySQL 锁机制深度解析:原理、场景、排查与优化
本文系统介绍了MySQL中的锁机制,包括全局锁、表级锁和行锁的实现原理与应用场景。全局锁(FTWRL)锁定整个实例实现只读,适用于全量备份;表级锁包含读锁、写锁和MDL锁,适合批量操作和非InnoDB引擎;行锁基于索引实现,支持高并发事务场景。文章还分析了死锁产生原因及排查方法,并提出了统一锁定顺序等解决方案。最后强调锁选择需要在数据一致性和并发性能间取得平衡,建议根据业务特点、存储引擎和版本特性选择合适的锁策略,并通过监控工具优化性能。
2025-10-08 13:17:23
739
原创 MySQL 索引全解析:结构、优化与索引下推实战指南
索引下推是指:MySQL 执行查询时,将原本在 “服务器层” 过滤的条件(如gender='female'),下推到 “存储引擎层”,在遍历索引的同时完成过滤,只将符合条件的记录的主键值返回给服务器层,再进行回表操作。。
2025-10-04 23:04:39
931
原创 深入剖析 MySQL 中 binlog 与 redolog:区别、联系及在数据更新中的作用
在深入对比前,我们首先需要明确两种日志的基础定义和核心特性,这是理解后续内容的前提。。
2025-10-02 23:45:54
371
原创 MySQL 查询与更新语句执行过程深度解析:从原理到实践
在日常开发中,我们每天都在与 MySQL 的SELECT查询和UPDATE更新语句打交道,但你是否真正了解这些语句在数据库内部是如何 “运转” 的?理解 MySQL 的执行流程,不仅能帮助我们写出更高效的 SQL 语句,还能在遇到性能问题时快速定位根源。本文将从 MySQL 的架构设计出发,详细拆解查询语句和更新语句的完整执行过程,带大家看透 SQL 背后的 “黑盒子”
2025-10-02 23:41:01
812
原创 SPI 三剑客:Java、Spring、Dubbo SPI 深度解析与实践
从 Java 原生 SPI 的 “基础通用”,到 Spring SPI 的 “生态适配”,再到 Dubbo SPI 的 “分布式增强”,三种 SPI 机制的演进,本质上是 “从满足通用需求到适配特定场景” 的过程:Java SPI 是 “基石”,提供了最简洁的服务发现能力,适用于无框架依赖的轻量级场景;Spring SPI 是 “生态增强”,将 SPI 与 IoC 深度结合,成为 Spring 生态扩展的标准方式;。
2025-09-06 23:59:03
1117
2
原创 java面试复习(spring相关系列)
Spring通过xml或者@Compent,@Service等注解进行bean的定义;对于无参构造函数的 Bean,Spring 通过反射直接调用构造函数进行实例化。:Bean 实例化后,Spring 容器会对 Bean 的属性进行依赖注入。方法被调用,Bean 可以获取所属的 Spring BeanFactory。方法被调用,Bean 可以获取自身在 Spring 容器中的名称。方法被调用,Bean 可以获取加载自身的类加载器。方法会在属性注入后被调用,用于执行初始化操作。注解在方法上定义初始化逻辑。
2025-07-26 16:27:06
424
原创 java面试题复习(一)
3.问题:如何进行保证DB和Redis中的缓存一致,可以将redis作为主数据,db作为备份数据,通过MQ进行同步数据,做定时任务,每隔一段时间进行数据的比对。2. 优化点:可以将一些已经抢购的用户放入到缓存中,用户请求过来之后快速失败,防止不必要的请求。:每个分片预分配一定数量的库存(如 1000 个分片各预分配 10 件),用户请求时随机选择分片,减少冲突概率。分片数过少会导致锁竞争激烈;:根据商品热度动态调整分片数(如热门商品增加分片,冷门商品减少分片)。问:如何设计一个秒杀系统。
2025-07-24 18:26:32
179
原创 Spring 事务传播行为实战:7 种场景全解析
在企业级应用开发中,Spring 的事务管理是保障数据一致性的核心机制,而事务传播行为则是其中最灵活且复杂的部分。本文将通过 7 个真实业务场景,深入解析每种事务传播行为的应用方式与最佳实践。
2025-07-24 14:15:54
1150
原创 Python学习:函数的使用
print("这是外部函数")# 内部函数print("这是内部函数")# 外部函数中调用内部函数# 输出:# 这是外部函数# 这是内部函数# 错误:内部函数不能在外部函数外直接调用inner_func() # 报错:NameError: name 'inner_func' is not definedPython 函数参数的定义顺序必须严格遵守,否则会报语法错误,正确顺序为:必备参数(positional arguments)缺省参数(default arguments)。
2025-07-23 17:03:06
1155
原创 深入浅出 Java SPI:服务发现机制的设计与实践
Java SPI机制是一种服务发现机制,实现了接口与实现分离,使框架具备可扩展性。其核心原理是通过定义接口、实现类和在META-INF/services目录下的配置文件,由ServiceLoader动态加载实现类。典型应用包括JDBC驱动加载和SLF4J日志适配。虽然原生SPI存在一次性加载、线程安全等局限,但Spring和Dubbo等框架都对其进行了优化扩展。SPI机制体现了"开闭原则",是Java生态中插件化设计的基础,广泛应用于数据库驱动、日志框架等场景。理解SPI有助于设计可扩展
2025-07-21 15:19:37
1027
原创 Kafka 在分布式系统中的关键特性与机制深度解析
Kafka作为分布式消息系统的核心组件,通过独特的架构设计实现了高吞吐与高可用。其性能优势源于顺序写入、内存缓冲和分区并行机制;可靠性则通过多副本冗余、ISR管理和Epoch机制保障。采用分层存储结构(Topic-Partition-Segment)和稀疏索引设计优化数据管理,同时提供灵活的配置参数(如acks级别)来平衡性能与数据安全。Kafka的控制器选举和高效通信协议确保了集群稳定性,使其成为现代分布式系统中不可或缺的数据管道解决方案。
2025-07-20 21:54:44
811
原创 ReentrantLock 源码解析与 AQS 扩展
扩展点实现方式与意义可重入性通过 state 计数实现同一线程多次获取锁,释放时需递减至 0公平策略公平锁通过检查队列顺序,非公平锁直接 CAS 竞争可中断获取重写方法,在等待过程中响应中断超时机制实现方法,支持带超时的锁获取条件变量通过实现独立条件队列,支持更精细的线程协作。
2025-07-12 15:30:26
441
原创 深入理解 Java 中的 volatile 关键字
在 Java 并发编程中,volatile关键字是一个重要的工具,用于保证变量的可见性和禁止指令重排序。虽然它的使用场景相对较窄,但理解其原理对于编写高效且线程安全的代码至关重要。本文将从内存模型、可见性问题、指令重排序以及实际应用场景等方面深入探讨volatile关键字。
2025-07-12 11:30:04
1011
原创 深入理解 Dubbo 负载均衡:原理、源码与实践
本文深入解析了Apache Dubbo框架中的负载均衡机制,从原理到实践全面剖析了四种核心策略。首先介绍了负载均衡在微服务架构中的关键作用,包括流量分配、高可用保障和性能优化。随后通过源码详细分析了随机、轮询、最少活跃调用数和一致性哈希四种策略的实现原理,包括权重计算、预热处理等核心逻辑。最后给出实践建议:随机策略适用于大多数场景,轮询适合性能相近的服务,最少活跃数适合性能差异大的场景,一致性哈希则适用于有状态服务。文章还简要说明了如何通过SPI机制扩展自定义策略,为开发者提供了全面的负载均衡技术参考。
2025-06-29 21:05:20
798
原创 python3学习二(控制语句)
break和continue的用法跟java语法中的用法一致 paas语句 本人觉得没啥用。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。Python 推导式是一种强大且简洁的语法,适用于生成列表、字典、集合和生成器。for循环可以遍历任何序列的项目,如一个列表或者一个字符串。if中常用的操作运算符 < <= > >= ==!输出数组中字符串的长度大于3的 并且进行转换成大写。字符串,列表或元组对象都可用于创建迭代器。迭代器是一个可以记住遍历的位置的对象。
2025-06-26 15:33:29
160
原创 python3学习(基本数据类型)
print("hello world".capitalize()) 字符串的首字母大写 这个感觉有点用。print("我叫 %s,今年 %d 岁" % ("小明",25)) python字符串的格式化。python的字符串的下标 从前面开始的时候 是从0开始 从后面开始的时候从-1开始。元组跟列表很类似 只不过元组不可以进行修改操作 列表的定义是[] 元组的定义是()print(r'\n') print(R'\n') 输出字符串原来的含义。print("123".isdigit()) 是否是纯数字。
2025-06-25 14:05:56
941
原创 抽奖活动的设计技术方案
摘要:本文基于《简易版抽奖活动的设计技术方案》进行扩展,重点补充了数据库模块和抽奖接口逻辑设计。在数据库设计中新增了奖池表(关联活动与奖项)、奖项规则表(定义奖项规则)和奖品发放记录表(记录发放状态及第三方信息)。抽奖流程方面,用户命中奖池后发放奖品,发放方式分线上(虚拟资产)和线下(物流信息),每个环节通过特定字段进行关联追踪。整个设计实现了活动-奖池-奖项的多级关联和灵活的奖品发放机制。
2025-06-23 16:48:14
957
原创 简易版抽奖活动的设计技术方案
本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及技术保障措施等内容。
2025-06-10 22:44:40
1272
原创 深入剖析 RocketMQ 中的 DefaultMQPushConsumerImpl:消息推送消费的核心实现
通过对DefaultMQPushConsumerImpl了解,我们清晰地看到了 RocketMQ 消息推送消费的完整实现逻辑。从类结构设计到各个核心流程的源码细节,每一部分都紧密协作,共同保障了消息消费的高效性和可靠性。理解这些源码,开发者能够更好地进行性能优化、问题排查和功能扩展,让 RocketMQ 在实际项目中发挥更大价值。
2025-06-07 23:15:49
1094
原创 RocketMQ 消息发送核心源码解析:DefaultMQProducerImpl.send () 方法深度剖析
是 RocketMQ 消息生产者的核心实现类,它实现了消息发送的具体逻辑。├── 实现了 MQProducerInner 接口├── 依赖于 MQClientInstance 进行网络通信├── 包含 TopicPublishInfoManager 管理主题路由信息├── 使用 SendMessageHookList 支持发送钩子扩展核心属性/*** 随机数*//*** 关联的消息生产者的组件*//*** topic 发布信息的映射表*//*** 发送消息的钩子List。
2025-06-02 23:08:14
532
原创 RocketMQ 索引文件(IndexFile)详解:结构、原理与源码剖析
RocketMQ 的消息存储采用顺序写 CommitLog 的方式保证高性能,但这种方式在随机读场景下效率较低。IndexFile 作为一种辅助存储结构,旨在为消息提供基于 Key 的快速检索能力,弥补了顺序写在查询场景下的不足。IndexFile 作为 RocketMQ 的核心组件之一,通过精心设计的哈希索引结构,为消息提供了高效的基于 Key 的检索能力。其固定大小的文件设计、内存映射机制以及时间范围查询特性,使得 RocketMQ 在处理海量消息时依然能够保持出色的检索性能。
2025-05-25 15:29:21
1032
原创 RocketMQ 中的 ConsumeQueue:消息消费的关键索引
在理解 ConsumeQueue 之前,我们需要先了解 RocketMQ 的整体存储架构。CommitLog:作为消息的物理存储文件,所有主题的消息都按写入顺序被存储在 CommitLog 中。这是一个全局唯一的存储结构,确保了消息的顺序写入和高效存储。:作为消息的逻辑队列,是 CommitLog 的索引文件。每个主题的每个队列都有独立的 ConsumeQueue 文件,记录着消息在 CommitLog 中的物理偏移量、大小、标签等元数据。IndexFile。
2025-05-22 16:40:19
799
原创 MySQL InnoDB 表空间详解
InnoDB 表空间是数据存储的逻辑容器,负责组织和管理数据文件、索引及事务日志。系统表空间:存储数据字典、双写缓冲区等核心数据独立表空间:每个表独立存储为.ibd 文件通用表空间:多个表共享的可自定义表空间临时表空间:处理临时数据和排序操作撤销表空间:管理事务回滚信息和 MVCC 机制。
2025-05-11 21:53:46
757
原创 深入探究 InnoDB 的写失效问题
InnoDB 的写失效问题是数据库管理中需要重点关注的一个方面。部分页写入等写失效情况可能导致数据丢失和数据库完整性受损,严重影响应用程序的正常运行。Double Write Buffer 机制作为 InnoDB 应对写失效的有效手段,通过在内存和磁盘上创建数据副本,结合崩溃恢复机制,极大地提高了数据页的可靠性。虽然该机制会带来一定的性能开销,但通过合理的监控和配置,可以在数据可靠性和性能之间找到平衡。
2025-05-10 19:46:34
985
原创 探秘 RocketMQ 的 DLedgerServer:MemberState 的技术解析与深度剖析
在 RocketMQ 构建高可靠、强一致性消息系统的架构中,DLedgerServer 扮演着举足轻重的角色,而 MemberState 作为 DLedgerServer 内部用于描述节点状态的核心类,更是整个分布式日志模块稳定运行的关键。深入理解 MemberState 的设计理念、功能特性和工作原理,有助于我们揭开 RocketMQ 高可用背后的技术奥秘。本文将从多个维度对 DLedgerServer 中的 MemberState 进行详细介绍与剖析。。
2025-05-04 22:42:18
1044
原创 探索 Disruptor:高性能并发框架的奥秘
Disruptor 是由 LMAX 开发的一个高性能的无锁并发框架,最初用于 LMAX 的交易平台,以处理每秒数百万级别的交易请求。它通过优化内存访问、减少锁竞争和提高缓存命中率等方式,显著提升了系统的并发处理能力。Disruptor 通过无锁化设计、缓冲行填充和 RingBuffer 等技术,有效地解决了高并发场景下的性能瓶颈问题。它的设计理念和实现方式为我们提供了一种高效的并发编程思路。在实际应用中,我们可以根据具体的业务需求,合理使用 Disruptor 来提升系统的并发处理能力。
2025-05-02 23:42:55
950
原创 Netty相关的知识点
适用于需要将消息传递给下一个处理器的场景,或者要对消息进行多次处理的场景。方法的主要作用是断开当前的连接,不过它会保留底层的通道,方便后续再次连接。:适用于消息处理完成后无需再传递给下一个处理器的场景,例如简单的客户端或服务器,处理完消息后就可以释放资源。这意味着在处理完消息之后,你得手动释放相关资源,不然会造成内存泄漏。:会自动释放接收到的消息。当消息处理完成,它会自动释放消息所占用的资源。方法,在其中处理接收到的消息。包,以此来正常终止连接,但不会释放底层的套接字资源。方法,在其中处理接收到的消息。
2025-05-01 14:33:42
430
原创 RocketMQ 存储核心:深入解析 CommitLog 设计原理
CommitLog 是 RocketMQ 消息存储的核心物理文件,所有 Topic 的消息均以顺序追加(Append-Only)的方式写入同一个 CommitLog 文件。这种设计颠覆了传统“每个 Topic 独立存储”的模式,通过统一的顺序写机制最大化磁盘 I/O 效率。
2025-04-28 22:14:08
828
原创 RocketMQ CommitLog 核心恢复机制解析:recoverNormally 如何守护消息可靠性
的设计体现了 RocketMQ 在性能与可靠性之间的精妙平衡:通过严格顺序扫描、分层校验和智能截断,在保证消息不丢失的前提下,实现平均 5 秒内完成 TB 级 CommitLog 的恢复(实测数据)。理解这一机制,对于构建高可靠消息系统、排查数据不一致问题具有重要实践意义。
2025-04-21 16:33:54
474
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅