Disruptor 中文参考
  • 首页
  • 剖析Disruptor为什么会这么快
    • 1.1 锁的缺点
    • 1.2 神奇的缓存行填充
    • 1.3 伪共享
    • 1.4 揭秘内存屏障
  • Disruptor如何工作和使用
    • 2.1 Ringbuffer的特别之处
    • 2.2 如何从Ringbuffer读取
    • 2.3 写入Ringbuffer
    • 2.4 解析Disruptor关系组装
    • 2.5 Disruptor(无锁并发框架)-发布
    • 2.6 LMAX Disruptor 一个高性能、低延迟且简单的框架
    • 2.7 Disruptor Wizard已死,Disruptor Wizard永存!
    • 2.8 Disruptor 2.0更新摘要
    • 2.9 线程间共享数据不需要竞争
  • Disruptor的应用
    • 3.1 LMAX的架构
    • 3.2 通过Axon和Disruptor处理1M tps
Powered by GitBook
On this page

Was this helpful?

  1. Disruptor如何工作和使用

2.7 Disruptor Wizard已死,Disruptor Wizard永存!

Disruptor Wizard(上一篇中提到的DSL组件)目前已经正式并入Disruptor的代码树当中。既然.net移植版包含了Wizard风格的语法很久了,并且看起来还挺受欢迎,所以为什么还要让人们非得搞两个jar而不是一个?

我跟随Disruptor在术语命名上的变动做出了相应的更新。以前的Customer(消费者),现在叫EventProcessor(事件处理器)和EventHandler(事件句柄)。这样的命名更好的说明了实际上的情况:消费者事实上可以向事件添加附加值。另外,ProducerBarrier(生产者屏障)被合并到Ring Buffer一起,并且Ring Buffer Entry(条目)被改名为Event(事件)。新的命名更贴切了,因为实际上围绕Disruptor的编程模型大部分时候都是基于事件的。

除了以下两点,Wizard API与以往并没有太大的不同:

  • consumeWith方法改名为handleEventsWith

  • getProducerBarrier方法被替换成了一个返回值为ring buffer的start方法。这就不会混淆地认为getProducerBarrier方法也被用作触发事件处理器线程的启动。

现在的方法命名清楚地表示了该方法的其它作用。

Previous2.6 LMAX Disruptor 一个高性能、低延迟且简单的框架Next2.8 Disruptor 2.0更新摘要

Last updated 5 years ago

Was this helpful?