前言
Disruptor是一个高性能的无锁并发框架,其主要应用场景是在高并发、低延迟的系统中,如金融领域的交易系统,游戏服务器等。其优点就是非常快,号称能支撑每秒600万订单。需要注意的是,Disruptor是单机框架,对标JDK中的Queue,而非可用于分布式系统的MQ
本文基于Disruptor v3.4.*版本
Demo
既然是简单使用,这阶段只需要关注:
- 生产者
- 消费者:EventHandler
- 消息的传递:消息的载体Event
简单例子
首先,我们定义消息的载体Event,生产者向消费者传递的消息通过Event承载
class LongEvent {
|
|
private long value; |
|
public void set(long value) {
|
|
this.value = value; |
|
} |
|
@Override |
|
public String toString() {
|
|
return "LongEvent{" + "value=" + value + '}'; |
|
} |
|
} |
然后定义Event生产工厂,这用于初始化Event
EventFactory<LongEvent> factory = new EventFactory<LongEvent>() {
|
|
@Override |
|
public LongEvent newInstance() {
|
|
return new LongEvent(); |
|
} |
|
}; |
接下来就可以构建Disruptor了,以下是完整代码
// 消息载体(event) |
|
static class LongEvent {
|