Kafka源码解析(一)---LogSegment以及Log初始化
我们先回想一下Kafka的日志结构是怎样的? Kafka 日志对象由多个日志段对象组成,而每个日志段对象会在磁盘上创建一组文件,包括消息日志文件(.log)、位移索引文件(.index)、时间戳索引文件(.timeindex)以及已中止(A...
我们先回想一下Kafka的日志结构是怎样的? Kafka 日志对象由多个日志段对象组成,而每个日志段对象会在磁盘上创建一组文件,包括消息日志文件(.log)、位移索引文件(.index)、时间戳索引文件(.timeindex)以及已中止(A...
前言 我在[2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?][2. SOFAJRaft_JRaft]这篇文章里已经讲解过时间轮算法在JRaft中是怎么应用的,但是我感觉我并没有讲解清楚这个东西,导致看了这篇文章依然...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
前言 在一次聚会中,我和一个腾讯大佬聊起了池化技术,提及到java的线程池实现问题,我说这个我懂啊,然后巴拉巴拉说了一大堆,然后腾讯大佬问我说,那你知道线程池有什么缺陷吗?我顿时哑口无言,甘拜下风,所以这次我再回来思考一下线程池的实现原理 ...
前言 今天看Jraft的时候发现了很多地方都用到了读写锁,所以心血来潮想要分析以下读写锁是怎么实现的。 先上一个doc里面的例子: class CachedData { Object data; volatile boolean cache...
简介 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的。 各大APM工具,几乎都是根据google这篇经典的...
本文基于最新的3.4.2的版本文档进行翻译,翻译自: https://github.com/LMAX-Exchange/disruptor/wiki/Introduction https://github.com/LMAX-Exchange...
ConcurrentHashMap源码分析 其实ConcurrentHashMap我自己已经看过很多遍了,但是今天在面试阿里的时候自己在描述ConcurrentHashMap发现自己根本讲不清楚什么是ConcurrentHashMap,以及...
CMS全称 ConcurrentMarkSweep,是一款并发的、使用标记-清除算法的垃圾回收器, 如果老年代使用CMS垃圾回收器,需要添加虚拟机参数-“XX:+UseConcMarkSweepGC” 缺点: 1、 CMS收集器对CPU资源...
在分析代码之前,我们先抛出下面的问题: hashmap 扩容时每个 entry 需要再计算一次 hash 吗? 我们首先看看jdk7中的hashmap的resize实现 1 void resize(int newCapacity) { //...
新生代填满时,垃圾收集器会暂停所有的应用线程,回收新生代空间。这种操作被称为Minor GC。 老年代被填满时,垃圾收集器会暂停所有应用线程,对其进行回收,接着对堆空间进行整理。这个过程被称为Full GC。 最主流的四个垃圾收集器分别是:...