简介: Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱 ...
分类:
其他好文 时间:
2017-11-18 12:48:30
阅读次数:
170
刚刚听说disruptor,大概理一下,只为方便自己理解,文末是一些自己认为比较好的博文,如果有需要的同学可以参考。 本文目标:快速了解Disruptor是什么,主要概念,怎么用 1、Disruptor简介 Disruptor是什么?有什么特点/优点? --Disruptor是一个用于在线程间通信的 ...
分类:
其他好文 时间:
2017-11-16 18:32:35
阅读次数:
104
http://ifeve.com/dissecting-disruptor-whats-so-special/ 正如名字所说的一样,它是一个环(首尾相接的环),你可以把它用做在不同上下文(线程)间传递数据的buffer。 如何使用Disruptor(二)如何从Ringbuffer读取 http:// ...
分类:
其他好文 时间:
2017-11-14 14:30:13
阅读次数:
208
本文将介绍Disruptor的工作机制,并分析Disruptor的主要源码 基于的版本是3.3.7(发布于2017.09.28) 水平有限,如有谬误请留言指正 0. 什么是Disruptor? Disruptor是一个开源的并发框架,提供了类似于Java中有界队列的功能,主要用于生产消费者场景。 与 ...
分类:
其他好文 时间:
2017-11-05 17:29:52
阅读次数:
219
先c1和c2并行消费生产者产生的数据,然后c3再消费该数据 我们来使用代码实现:我们可以使用Disruptor实例来实现,也可以不用产生Disruptor实例,直接调用RingBuffer的api来实现,不清楚看上一节使用的api函数workpool和BatchEventProcess来辅助实现消费 ...
分类:
其他好文 时间:
2017-10-13 14:07:56
阅读次数:
176
在helloWorld的实例中,我们创建Disruptor实例,然后调用getRingBuffer方法去获取RingBuffer,其实在很多时候,我们可以直接使用RingBuffer,以及其他的API操作。我们一起熟悉下示例: 使用EventProcessor消息处理器。 BatchEventPro ...
分类:
其他好文 时间:
2017-10-12 14:35:07
阅读次数:
3735
性能非常强大,达到1400w/s。对比其他Disruptor实现,这个实现太简洁了。 作者是https://www.zhihu.com/people/gowkh。 代码在https://github.com/yireyun/go-queue/blob/master/esQueue.go ...
分类:
其他好文 时间:
2017-10-12 13:10:52
阅读次数:
134
小故事:Disruptor说的是生产者和消费者的故事. 有一个数组.生产者往里面扔芝麻.消费者从里面捡芝麻. 但是扔芝麻和捡芝麻也要考虑速度的问题. 1 消费者捡的比扔的快 那么消费者要停下来.生产者扔了新的芝麻,然后消费者继续. 2 数组的长度是有限的,生产者到末尾的时候会再从数组的开始位置继续. ...
分类:
编程语言 时间:
2017-10-12 12:14:39
阅读次数:
247
接下来,我会对disruptor的设计和源码上进行讲解,先来一篇时序图,简单理解下disruptor的工作过程 ...
分类:
其他好文 时间:
2017-09-19 15:09:01
阅读次数:
124
1、定义事件事件(Event)就是通过 Disruptor 进行交换的数据类型。 2、LongEvent事件生产者 3、LongEvent事件消息者 4、ProducerConsumerMain 消费者-生产者启动类,其依靠构造Disruptor对象,调用start()方法完成启动线程。 5、Eve ...
分类:
其他好文 时间:
2017-09-02 12:15:13
阅读次数:
1156