Disruptor是一个高性能队列,常见的还有kafka、rabbitmq等,下面体验一下~
1、Disruptor简介
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。
其特点简单总结如下:
- 开源的java框架,用于生产者-消费者场景;
- 高吞吐量和低延迟;
- 有界队列;
disruptor在github网址为:https://github.com/LMAX-Exchange/disruptor

2、Disruptor概念
- Ring Buffer:环形的缓冲区,环形数组中的元素采用覆盖方式,避免了jvm的GC;
- Sequence Disruptor:通过顺序递增的序号来编号管理通过其进行交换的数据(事件),对数据(事件)的处理过程总是沿着序号逐个递增处理;
- Sequencer:Sequencer 是 Disruptor 的真正核心。此接口有两个实现类 SingleProducerSequencer、MultiProducerSequencer ,它们定义在生产者和消费者之间快速、正确地传递数据的并发算法;
- Sequence Barrier:用于保持对RingBuffer的 main published Sequence 和Consumer依赖的其它Consumer的 Sequence 的引用;
- Wait Strategy:定义 Consumer 如何进行等待下一个事件的策略;
- Event:在 D

最低0.47元/天 解锁文章
1445

被折叠的 条评论
为什么被折叠?



