自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 从源码角度了解Lucene(倒排索引存储结构)

WAL+Segment存储模式结合了写前日志(WAL)和不可变分段(Segment)技术,实现高效数据写入和查询。WAL确保数据持久化,Segment按块存储数据并支持合并优化。Lucene采用该模式构建索引,通过批量写入有序数据提升索引效率。查询时采用二分查找快速定位文档,使用BM25算法计算相关性评分,考虑词频、逆文档频率和文档长度因素。该模式还通过文件聚合(cfs/cfe)解决大量小文件问题,支持高效的分页查询,但深分页可能存在性能问题。

2025-06-11 17:05:55 598

原创 【吃透 Elasticsearch 的核心原理】学习步骤

【代码】【吃透 Elasticsearch 的核心原理】学习步骤。

2025-05-08 10:29:47 753

原创 Caffeine搭建源码环境

Caffeine作为服务端本地缓存之王,有独到的高性能设计;搭建源码环境折磨坏本码农,故分享我成功搭建步骤。

2025-03-10 11:41:08 210

原创 Memcached整体结构(源码)

Memcached不像Redis有许多数据结构,它只实现了Hash表的操作,存储的K-V缓存中间件。

2025-03-09 10:09:07 149

原创 Jedis、Lettuce和Redisson性能设计

Jedis、Lettuce和Redisson底层区别导致的性能差异分析

2025-03-03 14:13:58 1241

原创 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

原创 Redis7.0八种数据结构底层原理

redis8种数据结构的底层存储结构

2025-02-08 11:17:41 1361

原创 Caffeine核心设计图解

Caffeine高性能细节设计

2025-01-11 14:45:56 688

原创 【Redis源码】核心图解

redis源码图解

2024-12-11 22:37:00 249

原创 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

原创 ElasticSearch与HBase的分布式存储设计

存储角度对比ES与HBASE

2023-12-15 16:22:21 615

原创 EasyRAFT

EasyRaft是Raft(共识算法)的Java实现,主要目的在于提供一种高性能的分布式一致性协议。覆盖Jraft实现的功能。

2023-10-12 14:05:18 365

原创 BIO&NIO基准测试-笔记

第一轮第二轮。

2023-06-12 21:50:08 339 1

原创 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

原创 JDK定时/延迟任务实现原理

ScheduledThreadPoolExecutor实现原理

2023-04-13 21:04:50 624

原创 手写分布式系统CP协议-实现中

基于Raft算法实现CP协议

2023-04-05 13:56:30 599

原创 JDK之8后: 协程? 虚拟线程!!!

特性官方文档: https://openjdk.org/jeps/436。

2023-04-04 21:17:26 1803

原创 JDK8后:作用域值(Scoped Values)

在此之前我们使用TheadLocal去做多线线程的共享,JDK20的孵化特性 Scoped Values作用域值提供的更轻量的多线程共享特性。

2023-04-04 19:11:24 507

原创 数据同步模型的[读扩散、写扩散和混合模式]-基础概念

数据同步模型基础概念与方案

2023-03-11 14:13:34 1468

原创 Sentinel源码阅读

Sentinel源码阅读

2023-02-14 14:11:37 445

原创 IM架构方案

这两天思考了一下IM系统架构,大三的时候基于网络文档实现过,时过境迁抽象思考一下

2023-02-07 15:51:28 585

原创 Mybatis源码阅读-笔记

mybatis源码阅读笔记

2023-02-02 19:30:11 283

原创 rabbit是否支持批量发送?

Rabbit是否支持批量发送消息该问题笔者翻阅官方文档与三方博客也没有找到答案,后也是自己去翻阅源码后才大概找到一个不敢确定的答案:

2023-01-30 14:36:28 1212

原创 Spring官方提供【CSRF攻击】解决方案

·Spring官方提供【CSRF攻击】解决方案

2023-01-16 08:20:56 1806

原创 HTTP 请求头安全方案

HTTP 请求头安全方案

2023-01-13 14:22:57 2069

翻译 JWT 中文官方文档

JWT官方文档

2023-01-11 20:15:03 4088

原创 从官方文档学习Rabbit与SpringAMQP-乱版

主要从Rabbit官网于Spring AMQP官方文档的角度去详细学习MQ

2023-01-05 21:03:14 563

原创 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

原创 Java对比GO的优劣势

二次开发了微信三方管理平台的go项目后聊一下使用go后的一些感受

2022-12-15 09:58:03 4139

原创 Linux搭建Canal环境并投递至RabbitMq

根据官网流程标准搭建canal环境并投递mq

2022-12-11 20:26:48 792

原创 搭建高性能数据库服务⭐《Sharding-JDBC+Canal》⭐

Sharding-JDBC+Canal 本文主要记录本周的学习内容,搭建mysql的高性能数据库服务

2022-12-10 21:07:58 900

原创 Java优秀博客阅读记录

个人阅读记录

2022-11-25 10:43:42 417

原创 JVM分析指令解析-jps/jinfo/jstat/jstack/jmap/jcmd

本文主要解析JVM分析指令-jps/jinfo/jstat/jstack/jmap

2022-11-23 21:21:43 606

四级联动 经度 纬度 有单表与多表

1, '110000', '北京', '北京', '000000', '116.405289', '39.904987', 1, '2019-09-04 17:27:50', '2019-09-04 17:27:50', '', 0, '00000000', '1'

2020-11-07

空空如也

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

TA关注的人

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