自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 JAVA并发之从源码看AQS

文章目录一、AQS是什么二、前置知识三、源码分析总结一、AQS是什么AQS全称是AbstractQueuedSynchronizer,即抽象队列同步器。是用来构建锁或者其他同步器组件的基础框架。在编写多线程程序时,常常需要考虑线程同步的问题,我们可以使用Java提供的synchronized关键字或者是J.U.C包下的各种API(如Reentrantlock、CountDownLatch、Semaphore等)来解决线程同步的问题,前者是JVM层面的锁,通过monitor对象来完成(字节码monitor

2021-09-20 12:10:01 130

原创 logstash-output-rocketmq插件实现——JAVA版

文章目录前言1. logstash启动2. 生成.jar文件3. 下载并配置插件demo4. demo代码说明5. 修改demo的代码6. 打包和发布7. 在logstash中安装该插件8. 运行logstash-output-rocketmq前言编写该插件的时候踩了蛮多坑,这里记录一下。1. logstash启动首先使用如下命令从github clone一份logstash的代码,或者直接下载对应的zip压缩包。git clone --branch 7.9 --single-branch ht

2021-06-15 19:48:03 2749 7

原创 RocketMQ源码解析之消息存储

文章目录前言一、消息处理入口二、CommitLog结构三、CommitLog处理消息写入主流程3.1 主流程第一步3.2 主流程第二步3.3 主流程第三步四、 其他问题前言在RocketMQ读写消息时,用的是Java NIO类库中的类,关于这些类的介绍和使用,可以先看我的前一篇文章Java传统IO和NIO有什么区别。接下来就从源码来分析当broker接收到消息时是如何处理的。一、消息处理入口消息处理入口:BrokerController.registerProcessor(),Broker为每一种请

2021-06-04 17:19:18 261

原创 Java传统IO和NIO有什么区别

RocketMQ源码解析之MappedByteBuffer前言一、传统IO二、使用步骤1.引入库2.读入数据总结前言最近在看RocketMQ的源码,发现RocketMQ在读写文件的时候使用的是MappedByteBuffer,但是并不理解为什么要使用MappedByteBuffer。看了很多博客,大多都简单介绍了MappedByteBuffer有什么优点,并没有从根本上解决我的疑惑,因此想深入的研究一下MappedByteBuffer究竟是个什么东西。当我们使用传统的Java IO读写文件时,可能会用

2021-05-29 23:23:59 366

空空如也

空空如也

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

TA关注的人

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