自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猿上生活

专注Java领域技术栈源码分析

  • 博客(14)
  • 资源 (5)
  • 收藏
  • 关注

原创 笔记|mysql多个事务并发执行出现的问题

原创不易,转载请注明出处1.脏写有2个事务a和b同时更新一条数据,a事务先更新了值为1 ,然后b事务又更新值为2但是事务a没有提交事务,然后一回滚,根据undo log的记录就会将记录值回滚到a之前的那个值,这个时候就会发现b事务操作就失效了。通俗的说就是两个事务同时写,一个事务修改了另一个事务修改过但是没有提交的值,就会出现脏写问题。2.脏读有2个事务a 与事务b ,事务a修改了1记录,然后还没有提交事务,然后事务b进行查询,查到了事务a修改的值,事务a由于某种原因进行了事务的回滚,导致1.

2021-01-25 17:52:28 1747

原创 redisson源码解析-分布式可重入锁(原理篇)

原创不易,转载请注明出处文章目录前言1.使用demo1. lock原理2.unlock原理前言redisson作为redis的客户端,提供了特别丰富的功能,关于redisson各种功能使用文档可以看下它的官网或者github,它还提供了基于redis各种分布式锁的实现,比如说重入锁,读写锁,公平锁,RedLock,Semaphore等等,在redis单机,哨兵,集群模式下使用都是ok的,让人感觉就是一个字,强大。本文主要是介绍下redisson分布式可重入锁的实现原理。1.使用demo我这里.

2021-01-22 18:10:30 2027 1

原创 ThreadPoolExecutor源码解析

原创不易,转载请注明出处文章目录前言1.线程池参数解析2.运行原理3.ThreadPoolExecutor实例化4.位运算表示线程池状态与线程数5.提交任务任务6.执行任务7.keepalive清理的是core还是max总结前言1.线程池参数解析2.运行原理3.ThreadPoolExecutor实例化4.位运算表示线程池状态与线程数5.提交任务任务6.执行任务执行原理其实很简单,就是先讲每个worker里面自己的那个firstTask执行完成,接着就不断的从我们配置的那个队列中获.

2021-01-18 15:22:07 221

原创 深度解析kafka生产者发送消息(拉取元数据)

原创不易,转载请注明出处文章目录前言1.拉取元数据的时机2.业务线程等待元数据3.sender线程拉取元数据总结前言在之前的文章中我们介绍了,kafka 消息生产者端有2种线程,一种是业务线程,一种是sender线程,这个业务线程是支持多个的,也就是支持并发发送,然后这个sender 一个KafkaProducer实例就一个,业务线程不停的往一个内存缓冲区(消息累加器,因为这里要把多个消息打成batch)追加消息,然后sender线程干的事就多了,发送消息,接收响应,建立连接,获取元数据。在解析.

2021-01-15 16:28:00 1615 2

原创 图解kafka中hw,leo,isr

原创不易,转载请注明出处文章目录前言1.hw leo isr的介绍2.图解hw leo isr 变化总结前言本文主要是介绍下kafka broker 中的hw leo isr分别是啥,然后介绍hw与leo在写入消息的时候,副本同步的时候在partition leader 副本与partition follower副本是怎样变化的,follower 副本要满足什么条件加入才能加入isr列表,又是在什么样的情况下被踢出isr列表。1.hw leo isr的介绍leo :log end offse.

2021-01-11 14:47:30 1145

原创 深度解析kafka broker创建新日志段与更新LEO以及刷盘

原创不易,转载请注明出处文章目录前言1.当前日志段放不下消息集是怎样创建新的日志段的2.写入完leader副本后是怎样更新leo的3.是怎样刷盘的总结前言在《深度解析kafka broker处理发送消息请求并写入磁盘》一文中我们介绍了包括requestHandler对发送消息请求处理以及消息集是怎样被追加写入到.log 文件,稀疏索引是怎样被写入到.index文件的,由于主流程的原因我们有些比较重要的细节没有深入的解析,本文就创建新的日志段,更新leo,刷盘的一些细节问题展开源码级剖析。1.当.

2021-01-11 00:10:54 502 1

原创 深度解析kafka broker处理发送消息请求并写入磁盘

原创不易,转载请注明出处文章目录前言1.requstHandler拿到请求找到对应处理方法2.ReplicaManager是怎样appendMessages的总结前言在《深度解析kafka broker从连接建立到接收请求发送响应》或者更往前介绍kafka broker 网络组件的文章中,我们介绍了broker处理与消息生产者(客户端)建立连接,processor接收请求,写回响应,requestHandler处理请求信息等流程,我们已经知道了一个请求过来是怎样运转的了,本文接着消息生产者发送消.

2021-01-10 23:22:49 1275

原创 深度解析kafka broker消息存储组件初始化流程

原创不易,转载请注明出处文章目录前言1.LogManager2.Log3.LogSegment4.FileMessageSet5.OffsetIndex总结前言本文主要介绍下kafka 消息(日志)存储模块涉及到的核心组件是怎样初始化的,各个组件之前的联系与关系,各个组件对应到磁盘上是什么样的,比如说Log 对应到磁盘上就是某个分区(partition)的文件夹(topic-partition),这个文件夹下面那堆文件是怎样与LogSegment 对应起来的等等。1.LogManager先介.

2021-01-10 14:32:17 252

原创 深度解析kafka broker从连接建立到接收请求发送响应

原创不易,转载请注明出处kafka 网络模块相关文章1.《深度解析kafka broker网络模型运行原理》2.《深度解析kafka broker网络组件初始化流程》文章目录前言1.建立连接2.接收请求3.处理请求4.发送响应总结前言我们在前几篇kafka网络模块相关的文章中分别介绍了kafka broker 网络模型,运行流程,以及核心组件的初始化流程,本文我们将贴合实际场景出发,以消息生产者发送消息为例,看看acceptor是怎样处理新连接建立的,processor是怎样接收请求信息交.

2021-01-09 23:39:11 866

原创 深度解析kafka broker网络组件初始化流程

原创不易,转载请注明出处文章目录前言1.SocketServer初始化2.acceptor初始化3.processor初始化4.RequestChannel初始化5.RequestHandler初始化总结前言在《深度解析kafka broker网络模型运行原理》一文中我们介绍了kafka broker 网络模型,并且大体上介绍了各个核心组件的运行原理,在第二小节中对比了一下RocketMQ网络模型与kafka的网络模型,发现其实差不多样子。本文主要是从源码角度出发,看看kafka那几个网络组件是.

2021-01-08 15:07:33 452 7

原创 深度解析kafka broker网络模型运行原理

原创不易,转载请注明出处文章目录前言1.kafka网络模型运行原理2.对比一下RocketMQ的网络模型总结前言本文将介绍下kafka broker 端的网络模型,会从宏观角度介绍下kafka broker网络模型是啥样子的,都有哪些组件,组件之间的运作流程是啥样子的,里面涉及到的一些比较重要的参数,接着就是将RocketMQ网络模型拿出来与kafka 的比较一下。1.kafka网络模型运行原理kafka broker 在启动的时候,会根据你配置的listeners 初始化它的网络组件,用来.

2021-01-07 16:23:22 1236

原创 深度解析Kafka中CopyOnWriteMap实现原理

原创不易,转载请注明出处文章目录前言1. 加锁copy写2. 无锁并发读总结前言Kakfa消息生产者端 业务在发送消息的时候,会将消息追加写到RecordAccumulator这个内存缓冲区的队列中,在追加的时候首先会根据消息的topic与partition 去一个map中获取对应的Deque队列,如果对应的队列不存在,就会创建一个,并添加到map中,然后才会将消息追加到队列队尾的batch元素中,我们知道,Kafka发送消息是支持多线程并发的,也就是往内存缓冲区中追加也是多线程并发的,其实在往.

2021-01-05 18:46:03 1343 9

原创 深度解析kafka生产者发送消息(业务线程将消息追加到缓冲区)

原创不易,转载请注明出处文章目录前言1.回顾业务线程都经历哪些核心步骤2.源码解析前言在《深度解析kafka生产者发送消息(原理篇)》一文中,我们主要介绍了kafka消息生产者端业务线程与sender线程主要工作流程,业务线程是将消息追加到一个内存缓冲区中,而sender线程就是不断从内存缓存去中获取消息,然后进行消息的请求封装,消息发送,接收响应,创建连接,断开连接等等。本文主要是从分析一下业务线程将消息追加到内存缓冲区这块的源码1.回顾业务线程都经历哪些核心步骤当我们业务线程调用Kaf.

2021-01-05 17:46:47 623

原创 深度解析kafka生产者发送消息(原理篇)

原创不易,转载请注明出处文章目录前言1.回顾kafka生产者核心组件2.图解kafka发送消息原理总结前言1.回顾kafka生产者核心组件2.图解kafka发送消息原理总结

2021-01-05 10:41:58 1596

nexus私服下载包3.20版本的

这个是nexus的安装包,然后里面有win ,linxu,mac os 的,是3.20版本的,我花了不少积分下载的,你没有积分的可以联系我

2020-10-20

JAVA核心知识点整理

JAVA核心知识点整理 这个涵盖了老多的JAVA知识点, 面试前看看有好处,可以说是JAVA的面试宝典,从jvm到各种框架,看完无敌了,如果你没有积分你可以联系我,就当交个朋友

2020-10-19

RocketMQ可视化控制台

RocketMQ的可视化控制台,不为赚积分,你自己可以上github 搜rocketmq-externals这个项目,然后自己clone下来,到console子项目中打个包可以了,你要是下载了我这个,用的时候自己用360解压打开这个jar,修改一下application.properties 这个里面的配置,然后jave -jar 打开就可以了

2020-10-19

dubbo服务监控工具dubbo-admin

dubbo-admin 是诊断dubbo服务问题的利器,由阿里开源,忍受不了github龟速的可以这里下载,这csdn老改我积分

2020-07-04

java线上诊断工具arthas

arthas 是阿里开源的线上诊断工具,它能够快速定位线上问题,这里上传主要是为了用的时候直接下载,而不需要到github上下载,忍受不了github龟速的可以下载本资源,解压就可以使用

2020-07-03

空空如也

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

TA关注的人

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