java高阶编程之无锁并行计算框架——Disruptor初识

Disruptor快速入门

2011年,企业应用软件专家Martin Fowler在自己的网站上写了一篇LMAX架构的文章。在文章中他介绍了LMAX是一种新型零售金融交易平台,它能以很低的延迟产生大量的交易。这个LMAX系统是建立在JVM平台上,其核心是一个业务逻辑处理器。能够在一个线程里每秒处理六百万订单。

通过上面的介绍,相比大家对这个东西都有一个大大的问号吧,它能处理这么高的并发,那么它到底是采用了什么样的机制呢?或者有什么好的优化手段呢?

其实我们也不难猜测,一个线程里既然能处理六百万订单,那么很显然它的业务逻辑一定是在内存中处理的,因为如果要走IO的话,那性能肯定没有那么高,当然无论是互联网任何一个高性能的体现,无非就是走内存。 那么可能有的小伙伴会说缓存也可以啊,但是缓存性能肯定也是没有内存高的。
事实上Disruptor也使用了一个事件驱动的方式,这也是他的一个核心编程模型。

真正要想使用Disruptor,需要以下步骤:

  • 建立一个工厂Event类,用于创建Event类实例对象。
  • 需要一个事件监听类,用于处理数据(Event类)
  • 实例化Disruptor实例,配置一系列参数,编写Disruptor核心组件
  • 编写生产者组件,向Disruptor容器中去投递数据

让我们开始coding吧~

1.添加依赖

首先创建一个Maven项目并添加disruptor依赖:

   	  <dependency>
          <groupId>com.lmax</groupId>
          <artifactId>disruptor</artifactId>
          <version>3.4.2</version>
      </dependency>

2.建立Event类与Event工厂

@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestEvent {
   
    private long value;
}

public class TestEventFactory implements EventFactory<TestEvent> {
   
    @Override
    public TestEvent newInstance() {
   

        return new TestEvent();//这个方法就是为了返回空的数据对象
    }
}

3.创建事件监听类

public class TestEventHandler implements EventHandler
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值