- 博客(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 182
原创 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 2964 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 408
原创 Java传统IO和NIO有什么区别
RocketMQ源码解析之MappedByteBuffer前言一、传统IO二、使用步骤1.引入库2.读入数据总结前言最近在看RocketMQ的源码,发现RocketMQ在读写文件的时候使用的是MappedByteBuffer,但是并不理解为什么要使用MappedByteBuffer。看了很多博客,大多都简单介绍了MappedByteBuffer有什么优点,并没有从根本上解决我的疑惑,因此想深入的研究一下MappedByteBuffer究竟是个什么东西。当我们使用传统的Java IO读写文件时,可能会用
2021-05-29 23:23:59 517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人