参考 https://tech.meituan.com/2016/11/18/disruptor.html
前言
作为一个有追求的程序猿,时刻保持着对优秀事物的积极学习心态,并发编程就是一个难啃的“硬骨头”,它难在难以控制,大多会使用“锁”来进行管控。但这与性能又南辕北辙。因此,无锁化设计是提升并发性能的关键。本篇文章介绍一个无锁化的高性能并发队列-Disruptor。
1. 背景
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。
目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。在美团技术团队它也有不少应用,有的项目架构借鉴了它的设计机制。