121 Storm 内部通信技术(Disruptor)
Disruptor的来历
-
一个公司的业务与技术的关系,一般可以分为三个阶段。第一个阶段就是跟着业务跑。第二个阶段是经历了几年的时间,才达到的驱动业务阶段。第三个阶段,技术引领业务的发展乃至企业的发展。所以我们在学习Disruptor这个技术时,不得不提LMAX这个机构,因为Disruptor这门技术就是由LMAX公司开发并开源的。
-
LMAX是在英国注册并受到FSA监管(监管号码为509778)的外汇黄金交易所。LMAX也是欧洲第一家也是唯一一家采用多边交易设施Multilateral Trading Facility(MTF)拥有交易所牌照和经纪商牌照的欧洲顶级金融公司
-
LAMX拥有最迅捷的交易平台,顶级技术支持。LMAX交易所使用“(MTF)分裂器Disruptor”技术,可以在极短时间内(一般在3百万秒之一内)处理订单,在一个线程里每秒处理6百万订单。所有订单均为撮合成交形式,无一例外。多边交易设施(MTF)曾经用来设计伦敦证券交易 所(london Stock Exchange)、德国证券及衍生工具交易所(Deutsche Borse)和欧洲证券交易所(Euronext)。
-
2011年LMAX凭借该技术获得了金融行业技术评选大赛的最佳交易系统奖和甲骨文“公爵杯”创新编程框架奖。
Disruptor是什么
1、简单理解:Disruptor是一个Queue
。Disruptor是实现了“队列”的功能,而且是一个有界队列。而队列的应用场景自然就是“生产者-消费者”模型。
2、在JDK中Queue有很多实现类,包括不限于ArrayBlockingQueue
、LinkBlockingQueue
,这两个底层的数据结构分别是数组和链表。数组查询快,链表增删快,能够适应大多数应用场景。
3、但是ArrayBlockingQueue
、LinkBlockingQueue
都是线程安全的。涉及到线程安全,就会有synchronized、lock等关键字,这就意味着CPU会打架。
4、Disruptor一种线程之间信息无锁的交换方式(使用CAS(Compare And Swap/Set)操作)。
Disruptor主要特点
1、没有竞争=没有锁=非常快。
2、所有访问者都记录自己的序号的实现方式,允许多个生产者与多个消费者共享相同的数据结构。
3、在每个对象中都能跟踪序列号(ring buffer,claim Strategy,生产者和消费者),加上神奇的cache line padding,就意味着没有为伪共享和非预期的竞争。
Disruptor 核心技术点
Disruptor可以看成一个事件监听或消息机制,在队列中一边生产者放入消息,另外一边消费者并行取出处理。
底层是单个数据结构:一个ring buffer。
每个生产者和消费者都有一个次序计算器,以显示当前缓冲工作方式。
每个生产者消费者能够操作自己的次序计数器的能够读取对方的计数器,生产者能够读取消费者的计算器确保其在没有锁的情况下是可写的。
核心组件
- Ring Buffer 环形的缓冲区,负责对通过 Disruptor 进行交换的数据(事件)进行存储和更新。
- Sequence 通过顺序递增的序号来编号管理通过其进行交换的数据(事件),对数据(事件)的处理过程总是沿着序号逐个递增处理。
- RingBuffer底层是个数组,次序计算器是一个64bit long 整数型,平滑增长。
1、接受数据并写入到脚标31的位置,之后会沿着序号一直写入,但是不会绕过消费者所在的脚标。
2、Joumaler
和replicator
同时读到24的位置,他们可以批量读取数据到30。
3、消费逻辑线程读到了14的位置,但是没法继续读下去,因为他的sequence
暂停在15的位置上,需要等到他的sequence
给他序号。如果sequence
能正常工作,就能读取到30的数据。
相关文章
- UWA DAY 2021 精彩盘点 | 35场技术议题掀起的思维浪潮
- 技术分享连载(五十七)
- 移动端跨平台技术总结
- 浅谈UWB(超宽带)室内定位技术(转载)
- 4月20日,每天30秒,昨夜今晨一览无余/中国6G通信技术研发取得重要突破/宁德时代正式发布凝聚态电池
- 《通信技术导论(原书第5版)》——第1章 计算机和应用技术 1.1 主要的基础技术
- 《通信技术导论(原书第5版)》——1.12 总结
- 《通信技术导论(原书第5版)》——1.13 附录
- 《通信技术导论(原书第5版)》——第2章 数据中心和IP专用小交换机 2.1 引言
- 《通信技术导论(原书第5版)》——2.2 下一代数据中心:虚拟化和千兆比特速率
- 《通信技术导论(原书第5版)》——2.3 虚拟化管理
- 阿里技术官手码 12W 字面试小册
- 智能家居联网通信技术谁将一统天下?
- 浅析SQLite的锁机制和WAL技术
- 软件全程质量保障技术体现
- 端到端加密(E2EE)技术分析:在移动应用中实现安全通信的利器
- Spark技术内幕:Client,Master和Worker 通信源代码解析
- 智能监控技术带来的行业革新
- 国际电联发布2016年信息通信技术数字
- 云通信公司Twilio 买下了Kurento的WebRTC媒体处理技术
- 5G技术将加速智能网联汽车产业化进程