今天用一个停车场问题来加深对Disruptor的理解。一个有关汽车进入停车场的问题。当汽车进入停车场时,系统首先会记录汽车信息。同时也会发送消息到其他系统处理相关业务,最后发送短信通知车主收费开始。看了很多文章,里面的代码都是大同小异的,可能代码真的是很经典。以下代码也是来源网络,只是自己手动 ...
前段时间闲得蛋疼就尝试翻译了一下有关Disruptor的一些文章,第一次做这事,烂得自己也不忍回头去看了。。。 今天写日志看到那几篇文章,于是想写一个简单的例子,好让一些对Disruptor有兴趣但不是很明白的人更快的了解Disruptor的基本用法。 Disruptor使用起来非常简单,初始化 gt 启动消费者线程,然后每当生产者产生资源就往disruptor里放。 下面是一个接收短信状态报告的 ...
2012-04-28 10:42 5 7576 推荐指数:
今天用一个停车场问题来加深对Disruptor的理解。一个有关汽车进入停车场的问题。当汽车进入停车场时,系统首先会记录汽车信息。同时也会发送消息到其他系统处理相关业务,最后发送短信通知车主收费开始。看了很多文章,里面的代码都是大同小异的,可能代码真的是很经典。以下代码也是来源网络,只是自己手动 ...
简单用法 下面以一个简单的例子来看看Disruptor的用法:生产者发送一个long型的消息,消费者接收消息并打印出来。 首先,我们定义一个Event: 为了使Disruptor对这些Event提前分配,我们需要创建一个EventFactory: 事件已经定义好了,我们需要创建一个 ...
import java.util.concurrent.atomic.AtomicInteger; /** * Disruptor中的 Event * @author Alienware * */ public class Trade ...
结合最近Disruptor的学习,和之前一直思考解决的大文件拆分问题,想到是否可以使用Disruptor作为生产者/消费者传递数据的通道呢?借助其高效的传递,理论上应当可以提升性能。此文便是此想法的落地实现。 问题描述 将大文件按照指定大小拆分为若干小文件。具体可参考:大文件拆分方案的java ...
为了学习Disruptor的使用,这里以非常简单的例子入手:生产者生产单个long型value传递给消费者。 ...
想了解一个项目,最好的办法就是,把它的源码搞到本地自己捣鼓。 在网上看了 N 多人对 Disruptor 速度的吹捧,M 多人对它的机制分析,就连 Disruptor 官方文档中,也 NB 哄哄自诩: At LMAX we have built an order matching ...
知识点1:什么是Disruptor Disruptor使用观察者模式, 主动将消息发送给消费者, 而不是等消费者从队列中取; 在无锁的情况下, 实现queue(环形, RingBuffer)的并发操作, 性能远高于BlockingQueue 知识点2:Disruptor的设计方案 ...
这篇博客将主要通过几个示例,简单讲述 Disruptor 的使用方法; 一、disruptor 简介 Disruptor 是英国外汇交易公司 LMAX 开发的一个无锁高性能的线程间消息传递的框架。目前包括 Apache Storm、Camel、Log4j2 等知名项目都是用了 ...