- 博客(80)
- 资源 (1)
- 收藏
- 关注
原创 从源码角度了解Lucene(倒排索引存储结构)
WAL+Segment存储模式结合了写前日志(WAL)和不可变分段(Segment)技术,实现高效数据写入和查询。WAL确保数据持久化,Segment按块存储数据并支持合并优化。Lucene采用该模式构建索引,通过批量写入有序数据提升索引效率。查询时采用二分查找快速定位文档,使用BM25算法计算相关性评分,考虑词频、逆文档频率和文档长度因素。该模式还通过文件聚合(cfs/cfe)解决大量小文件问题,支持高效的分页查询,但深分页可能存在性能问题。
2025-06-11 17:05:55
598
原创 redis压测&调优
8核(vCPU)16 GiB11.2w负载指标:没有强烈的资源竞争,整体(多核心)负载低36.4wtp99.9 3ms4核(vCPU) 8 GiBc8a-卓越的单核性能: c8a采用AMD EPYCTM Genoa处理器,主频2.7 GHz,睿频最高3.7 GHz,单核性能强劲,适合需要高性能计算的应用场景。25.7w2核(vCPU) 4 GiB。
2025-02-28 09:16:00
897
原创 DeepSeek介绍[Cache-Through、Cache-Around、Cache-Behind、Cache-Asid]
DeepSeek介绍[Cache-Through、Cache-Around、Cache-Behind、Cache-Asid]
2025-02-18 16:52:42
963
原创 Kafka-时间轮和延迟操作-源码流程
DelayedProduce通过DelayedOperationPurgatory.tryCompleteElseWatch()被放入Watchers和SystemTimer中。Watchers的tryCompleteWatched()方法会尝试完成DelayedProduce(调用DelayedProduce的tryComplete()方法),那么tryCompleteWatched()是怎么被调用的呢?分区的HW发生了变动(acks = -1时)
2024-07-01 14:52:00
1902
1
原创 Kafka-Produce客户端源码流程
KafkaProducer中会起一个Sender线程,Sender线程中主要有两个方法:sendProducerData()和client.poll()。sendProducerData()负责准备数据并将数据set到通道中等待发送,client.poll()负责真正执行网络的io操作,在每次poll操作中必定有3次发送事件(假设集群中有3个kafka,生产者客户端会分别和3个kafka建立3个通道,这也是每次setSend不会失败的原因,如果失败了则该通道就关闭了)以及若干的接收响应事件。
2024-07-01 14:48:29
953
原创 Kafka-服务端-网络层-源码流程
整体架构如下所示:responseQueue不在RequestChannel中,在Processor中,每个Processor内部有一个responseQueueKafkaServer是Kafka服务端的主类,KafkaServer中和网络成相关的服务组件包括SocketServer、KafkaApis和KafkaRequestHandlerPool。SocketServer主要关注网络层的通信协议,具体的业务处理逻辑则交给KafkaRequestHandler和KafkaApis来完成。
2024-07-01 14:38:42
858
原创 Kafka-服务端-副本同步-源码流程
num.replica.fetchers 单个broker的拉取线程,默认1replica.fetch.response.max.bytes 单次最多拉取多少数据,默认10MBreplica.fetch.max.bytes 单次单分区最多拉取多少数据,默认1MB。
2024-07-01 14:34:32
1117
原创 Java核心锁基准测试
ReentrantLock: 平均用时263毫秒。ReentrantLock: 平均用时271毫秒。ReentrantLock: 平均用时8.0毫秒。synchronized: 平均用时454毫秒。synchronized: 平均用时465毫秒。synchronized: 平均用时8.9毫秒。StampedLock: 平均用时263毫秒。StampedLock: 平均用时297毫秒。StampedLock: 平均用时8.1毫秒。
2023-05-26 10:56:46
936
原创 系统化了解Micrometer
Micrometer是基于 JVM 的应用程序的指标检测库。它为最流行的监视系统提供了检测客户端的简单门面[门面设计模式],使您可以检测基于 JVM 的应用程序代码,而不会被供应商锁定。它旨在为指标收集活动增加很少甚至没有开销,同时最大限度地提高指标工作的可移植性。提供了标准化接口,像Slf4j一样提供门面Micrometer不是分布式跟踪系统或事件记录器
2023-05-14 16:23:42
2631
原创 个人 [Raft项目] 记一次内存泄漏排查
笔者在一步一步写Raft协议, 在可以跑了一天后,发现Leader节点的内存使用量缓慢上涨, 且手动执行GC后也没达到预期水平线。
2023-05-14 09:31:58
572
原创 JDK8后:作用域值(Scoped Values)
在此之前我们使用TheadLocal去做多线线程的共享,JDK20的孵化特性 Scoped Values作用域值提供的更轻量的多线程共享特性。
2023-04-04 19:11:24
507
原创 rabbit是否支持批量发送?
Rabbit是否支持批量发送消息该问题笔者翻阅官方文档与三方博客也没有找到答案,后也是自己去翻阅源码后才大概找到一个不敢确定的答案:
2023-01-30 14:36:28
1212
原创 Spring AMQP搭建RabbitMQ客户端
对于MQ的客户端我们主要分为**生产者**与**消费者**,前者负责向Mq推送消息后者监听MQ处理消息,本文也以两角色为主要切入来搭建项目;
2023-01-05 21:00:26
585
原创 代码层面解决 The channelMax limit is reached. Try later.
代码层面解决 The channelMax limit is reached. Try later.
2023-01-05 19:10:56
1876
原创 搭建高性能数据库服务⭐《Sharding-JDBC+Canal》⭐
Sharding-JDBC+Canal 本文主要记录本周的学习内容,搭建mysql的高性能数据库服务
2022-12-10 21:07:58
900
原创 JVM分析指令解析-jps/jinfo/jstat/jstack/jmap/jcmd
本文主要解析JVM分析指令-jps/jinfo/jstat/jstack/jmap
2022-11-23 21:21:43
606
四级联动 经度 纬度 有单表与多表
2020-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人