Spring Boot + Disruptor = 王炸!

作者:微信小助手

发布时间:2023-01-26T12:17:04

Disruptor 介绍

Disruptor 是一个开源的高性能内存队列,由英国外汇交易公司 LMAX 开发的,获得了 2011 年的 Oracle 官方的 Duke's Choice Awards(Duke 选择大奖)。

“Duke 选择大奖”旨在表彰过去一年里全球个人或公司开发的、最具影响力的 Java 技术应用,由甲骨文公司主办。含金量非常高!

我专门找到了 Oracle 官方当年颁布获得 Duke's Choice Awards 项目的那篇文章(文章地址:https://blogs.oracle.com/java/post/and-the-winners-arethe-dukes-choice-award) 。从文中可以看出,同年获得此大奖荣誉的还有大名鼎鼎的 Netty 、JRebel 等项目。

2011 年的 Oracle 官方的 Duke's Choice Awards

并且,有一些知名的开源项目到了 Disruptor ,就比如性能强大的 Java 日志框架 Log4j 2[1] 和蚂蚁金服分布式链路跟踪组件 SOFATracer[2] 就是基于 Disruptor 来做的异步日志,相关阅读:蚂蚁金服分布式链路跟踪组件 SOFATracer 中 Disruptor 实践(含源码)[3]

Disruptor 提供的功能类似于 KafkaRocketMQ 这类分布式队列,不过,其作为范围是 JVM(内存)。

  • Github 地址: https://github.com/LMAX-Exchange/disruptor
  • 官方教程: https://lmax-exchange.github.io/disruptor/user-guide/index.html

Disruptor 解决了 JDK 内置线程安全队列的性能和内存安全问题。

JDK 中常见的线程安全的队列如下:

队列名字 是否有界
ArrayBlockingQueue 加锁(ReentrantLock 有界
LinkedBlockingQueue 加锁(ReentrantLock 有界
LinkedTransferQueue 无锁(CAS 无界