加载中...

LMAX Disruptor 是英国外汇交易所 LMAX 开源的高性能线程间消息传递库(Java),2011 年发布并因 Martin Fowler 的介绍文章而广为人知,主要作者包括 Martin Thompson 与 Michael Barker。它诞生于 LMAX 构建单线程每秒处理数百万订单的撮合引擎的实践。
Disruptor 用预分配的环形缓冲区(Ring Buffer)取代传统的有锁队列:生产者与消费者通过序号(Sequence)协调进度,以 CAS 和内存屏障代替锁;事件对象预先分配、循环复用,避免运行时垃圾回收;缓存行填充消除伪共享(false sharing)。消费者之间还能组成依赖图,实现流水线或菱形处理拓扑。
Disruptor 展示了机械同情(mechanical sympathy,即代码贴合硬件工作方式)的设计哲学,对低延迟系统影响深远,Log4j 2 的异步日志等众多项目采用了它。
适合单机内高吞吐、低延迟的线程间事件传递,不适用于跨进程或分布式场景。

登录 后参与讨论
暂无讨论,来发表第一条评论吧