![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
disruptor
文章平均质量分 91
要懂得舍得
从零开始
展开
-
Disruptor入门
Disruptor入门翻译自Disruptor git库教程 英文地址获得Disruptor可以通过Maven或者下载jar来安装Disruptor。只要把对应的jar放在Java classpath就可以了。基本的事件生产和消费我们从一个简单的例子开始学习Disruptor:生产者传递一个long类型的值给消费者,而消费者消费这个数据的方式仅仅是把它打转载 2017-12-16 23:53:20 · 251 阅读 · 0 评论 -
内存屏障
原文地址 作者:Martin Thompson 译者:一粟 校对:无叶,方腾飞本文我将和大家讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见的一项技术。CPU使用了很多优化技术来实现一个目标:CPU执行单元的速度要远超主存访问速度。在上一篇文章 “Write Combing (合并写)”中我已经介绍了其中的一项技术转载 2017-12-18 21:24:14 · 260 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
作者:Trisha 译者:方腾飞 校对:丁一我们经常提到一个短语Mechanical Sympathy,这个短语也是Martin博客的标题(译注:Martin Thompson),Mechanical Sympathy讲的是底层硬件是如何运作的,以及与其协作而非相悖的编程方式。我在上一篇文章中提到RingBuffer后,我们收到一些关于RingBuffer中填充高速缓存行的评论和疑问。转载 2017-12-18 21:23:32 · 425 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(一)锁的缺点
原文:http://ifeve.com/disruptor-locks-are-bad/作者:Trisha’s 译者:张文灼,潘曦 整理和校对:方腾飞,丁一Martin Fowler写了一篇非常好的文章,里面不仅提到了Disruptor,而且还解释了Disruptor如何应用在LMAX的架构里。里面有提及了一些目前没有涉及的概念,但最经常问到的问题是 “Disruptor究转载 2017-12-17 12:23:05 · 697 阅读 · 0 评论 -
并发框架Disruptor译文
并发框架Disruptor译文Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disruptor。Di转载 2017-12-16 23:35:27 · 649 阅读 · 0 评论 -
LMAX架构
作者:Martin Fowler译文地址:http://www.jdon.com/42452 译者:banqLMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量).这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单.业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(eve转载 2017-12-17 11:55:24 · 912 阅读 · 0 评论 -
通过Axon和Disruptor处理1Mtps
作者: AllardBuijze 译者:程晓明LMAX,一家金融公司,最近开源了其(新型零售金融交易平台的)核心组件之一:Disruptor。这个组件通过删除必须的锁来降低执行开销,且任然保证正确的处理订单。如果你问我,我会说这是一个优美精巧的工程。我尝试把Disruptor应用到Axon控制总线中,就是想看看它到底有多大的潜力。结果相当惊人。The DisruptorD转载 2017-12-18 21:12:43 · 631 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(三)伪共享
作者:Martin Thompson 译者:丁一缓存系统中是以缓存行(cache line)为单位存储的。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。缓存行上的写竞争是运行在SMP系统中并行线程实现可伸缩性最重要的限制因素。有人将伪共享描述成无声的性转载 2018-05-19 21:01:26 · 767 阅读 · 0 评论 -
Disruptor 2.0更新摘要
原文:Disruptor 2.0 – All Change Please 译者:杨帆马丁最近发布了Disruptor的2.0版本,从我们开始将其开源以来发生了很多变化,现在是个时候推出一个正式的里程碑了。马丁的博客上涵盖了这次更新的所有内容,这篇文章的目的是尝试把我以前的博文以新框架的架构转述给大家,因为将它们都重写一遍要耗费很多时间。现在我看到手工绘图的缺点了。在旧的版本中:转载 2017-12-17 00:26:31 · 347 阅读 · 0 评论 -
Disruptor Wizard已死,Disruptor Wizard永存!
译者:杨帆 校对:丁一Disruptor Wizard(上一篇中提到的DSL组件)目前已经正式并入Disruptor的代码树当中。既然.net移植版包含了Wizard风格的语法很久了,并且看起来还挺受欢迎,所以为什么还要让人们非得搞两个jar而不是一个?我跟随Disruptor在术语命名上的变动做出了相应的更新。以前的Customer(消费者),现在叫EventProcessor(事件处理转载 2017-12-17 11:22:46 · 361 阅读 · 0 评论 -
LMAX Disruptor——一个高性能、低延迟且简单的框架
翻译:杨帆 校对:丁一Disruptor是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列,并且它是让LMAX Exchange跑的如此之快的一个关键创新。关于什么是Disruptor、为何它很重要以及它的工作原理方面的信息都呈爆炸性增长 —— 这些文章很适合开始学习Disruptor,还可跟着LMAX BLOG深入学习。这里还有一份更详细的白皮书。虽然disrup转载 2017-12-17 11:20:57 · 3997 阅读 · 0 评论 -
Disruptor(无锁并发框架)-发布
译者:罗立树假如你生活在另外一个星球,我们最近开源了一套高性能的基于消息传递的开源框架。下面我给大家介绍一下如何将消息通过Ring buffer在无锁的情况下进行处理。在深入介绍之前,可以先快速阅读一下Trish发表的文章,该文章介绍了ring buffer和其工作原理。这篇文章的要点如下:1.ring buffer是由一个大数组组成的。2.所有ring buf转载 2017-12-17 11:15:19 · 844 阅读 · 0 评论 -
解析Disruptor的依赖关系
作者:Trisha 译者:廖涵 校对:方腾飞现在我已经讲了 RingBuffer 本身,如何从它 读取以及如何向它 写入。从逻辑上来说,下一件要做的事情就是把所有的东西拼装到在一起。我前面提到过多生产者的情况——他们通过 ProducerBarrier 保证写入操作顺序与可控。我也提到过简单场景下的多消费者数据访问。更多的消费者的场景会变得更加复杂,我们实现了转载 2017-12-17 11:12:11 · 823 阅读 · 0 评论 -
如何使用 Disruptor(三)写入 Ringbuffer
作者:Trisha 译者:廖涵 校对:方腾飞这是Disruptor全方位解析(end-to-end view)中缺少的一章。当心,本文非常长。但是为了让你能联系上下文阅读,我还是决定把它们写进一篇博客里。本文的 重点 是:不要让 Ring 重叠;如何通知消费者;生产者一端的批处理;以及多个生产者如何协同工作。ProducerBarriersDisruptor 代码转载 2017-12-17 00:30:15 · 790 阅读 · 0 评论 -
如何使用Disruptor(一)Ringbuffer的特别之处
作者:Trisha 译者:寒桐 校对:方腾飞最近,我们开源了LMAX Disruptor,它是我们的交易系统吞吐量快(LMAX是一个新型的交易平台,号称能够单线程每秒处理数百万的订单)的关键原因。为什么我们要将其开源?我们意识到对高性能编程领域的一些传统观点,有点不对劲。我们找到了一种更好、更快地在线程间共享数据的方法,如果不公开于业界共享的话,那未免太自私了。同时开源也让我们觉得转载 2017-12-17 00:12:35 · 2339 阅读 · 0 评论 -
如何使用Disruptor(二)如何从Ringbuffer读取
英文原文:http://ifeve.com/dissecting-the-disruptor-how-do-i-read-from-the-ring-buffer/作者:Trisha 译者:古圣昌 校对:方腾飞从上一篇文章中我们都了解了什么是Ring Buffer以及它是如何的特别。但遗憾的是,我还没有讲述如何使用Disruptor向RingBuffer写数据和从Ring Bu转载 2017-12-17 00:19:58 · 980 阅读 · 0 评论 -
线程间共享数据无需竞争
原文 地址 作者 Trisha 译者:李同杰LMAX Disruptor是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖。本文将用图表的方式为大家介绍Disruptor是什么,用来做什么,以及简单介绍背后的实现原理。Disruptor是什么?Disruptor是线程内通信框架,用于线程里共享数据。LMAX创建Disruptor作为可靠消息架构的一转载 2017-12-17 11:26:06 · 473 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(四)揭秘内存屏障
译者:杜建雄 校对:欧振聪最近我博客文章更新有点慢,因为我在忙着写一篇介绍内存屏障(Memory Barries)以及如何将其应用于Disruptor的文章。问题是,无论我翻阅了多少资料,向耐心的Martin和Mike请教了多少遍,以试图理清一些知识点,可我总是不能直观地抓到重点。大概是因为我不具备深厚的背景知识来帮助我透彻理解。所以,与其像个傻瓜一样试图去解释一些自己都没完转载 2017-12-18 21:24:26 · 386 阅读 · 0 评论