认识高性能并发框架Disruptor
Disruptor,一款超高性能、超低延迟的并发编程框架。这里用了两个“超”来突出它在性能上的优越性。
它的性能远远超过了传统并发编程基于锁同步,阻塞队列的实现方案,在高性能后端编程中,disruptor是一个不错的选择。
Disruptor从何而来?
Disruptor的爆火起源于软件开发大师 martin fowler(马丁富勒)在自己网站上一篇文章,原文链接 文章介绍了外汇交易平台LMAX使用并开源的一种架构方案。
LMAX使用该方案实现了难以置信的 “单线程每秒处理600w订单” 的惊人能力。业务处理逻辑基于 完全运行内存运行 + 事件溯源 方式驱动。
Disruptor目前已经被LMAX开源,github地址 https://github.com/LMAX-Exchange/disruptor。
Disruptor有何特点?
Disruptor性能优越,必然有其设计上的独到之处,一般来说,我们认为Disruptor有以下特点:
- Disruptor是面向并发编程的高性能框架,它在开发上简化了并发程序编码难度,性能上也是JUC并发包的数倍乃至十几倍;
- Disruptor是CPU友好的、无锁的,基于单线程方式对任务进行调度,减少了上下文切换对系统资源的开销;
- Disruptor底层数据结构基于数组,通过预加载方式提前加载对象到内存;Disruptor不会清理缓存中的数据,而是通过覆盖对象属性方式实现数据的读写,这降低了GC频率,使得系统资源的使用趋于平稳;
- Disruptor能够避免“伪共享”,通过缓存行填充机制,Disruptor避免了伪共享对并发读写变量的消耗,消除了不必要缓存未命中。
版权声明:
原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。