刚刚听说disruptor,大概理一下,只为方便自己理解,文末是一些自己认为比较好的博文,如果有需要的同学可以参考。

本文目标:快速了解Disruptor是什么,主要概念,怎么用

1、Disruptor简介

Disruptor是什么?有什么特点/优点?

  --Disruptor是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列。

  --它是一个高性能、低延迟、使用简单的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式实现,或者事件-监听模式的实现,直接称disruptor模式。

  --disruptor最大特点是高性能,其LMAX架构可以获得每秒6百万订单,用1微秒的延迟获得吞吐量为100K+。

Disruptor 相对于传统方式的优点:

  --无锁,没有竞争

  --所有访问者都记录自己的序号的实现方式,允许多个生产者与多个消费者共享相同的数据结构

  --缓存行填充,解决伪共享,提高cache命中率

  --环形数组RingBuffer,避免GC开销

2、关键概念与原理

初学,大概过一遍,先有个印象:

Disruptor原理与编程实践 - CSDN博客  http://blog.csdn.net/jeffsmish/article/details/53572043

专题:Java并发框架剖析--Disruptor_51CTO.COM  http://developer.51cto.com/art/201306/399370.htm

Disruptor 极速体验 - haiq - 博客园  http://www.cnblogs.com/haiq/p/4112689.html

并发框架Disruptor译文 | 并发编程网 – ifeve.com  http://ifeve.com/disruptor/

高性能队列Disruptor系列2--浅析Disruptor - aheizi - 博客园  http://www.cnblogs.com/aheizi/p/6883062.html

3、如何使用

新建Maven工程,选择maven仓库找用户比较多的版本,加入依赖即可,我自己选择的目前最新版本3.3.7的。

敲了一遍代码,感觉由浅入深,根据下面的顺序来比较好,感受一下它的用法:

架构师入门笔记七 并发框架Disruptor快速入门 - ITDragon博客 - CSDN博客  http://blog.csdn.net/qq_19558705/article/details/77116949

架构师入门笔记八 并发框架Disruptor场景应用 - ITDragon博客 - CSDN博客  http://blog.csdn.net/qq_19558705/article/details/77247912

Disruptor入门-博客-云栖社区-阿里云  https://yq.aliyun.com/articles/20332#4

disruptor demo(三) 复杂一点的例子 - CSDN博客  http://blog.csdn.net/qian_348840260/article/details/38321371

无锁并发框架Disruptor学习入门的更多相关文章

  1. 并发框架Disruptor译文

    Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易.这个系统是建立在JVM平台上,其核心是一个业务逻辑 ...

  2. 并发框架Disruptor浅析

    1.引言 Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟.D ...

  3. 加锁并发算法 vs 无锁并发算法

    Heinz Kabutz 在上周举办了一次成功 JCrete研讨会,我在会上参加了对一种新的 StampedLock(于JSR166中 引入) 进行的评审.StampedLock (邮戳锁) 旨在解决 ...

  4. Lock Free (无锁并发)

    CAS( compare and swap) 原子操作,保证了如果需要更新的地址没有被其他进程(线程)改动过,那么它可以安全的写入.而这也是我们对于某个数据或者数据结构加锁要保护的内容,保证读写的一致 ...

  5. lock free(无锁并发)是什么

    一.非阻塞同步(Non-blocking Synchronization) 1. 无锁编程 / lock-free / 非阻塞同步 无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线 ...

  6. rpc框架dubbo学习入门及环境搭建(spring boot+Kotlin)

    学习之前,确保有以下知识基础: Java网络编程 Socket传输数据 IO流 rpc简介及实现 rpc是remote procedure call的简写,意思为远程过程调用. rpc应用较多的情景是 ...

  7. 基于 CAS 无锁实现的 Disruptor.NET 居然慢于 BlockingCollection,是真的吗?

    StackOverflow 有人说自己的Disruptor.NET 代码比 BlockingCollection 还有慢 2 倍,并且把完整代码贴出,楼下几个老外也的回复说了一堆,但是没研究出个所以然 ...

  8. 并发框架Disruptor场景应用

    今天用一个停车场问题来加深对Disruptor的理解.一个有关汽车进入停车场的问题.当汽车进入停车场时,系统首先会记录汽车信息.同时也会发送消息到其他系统处理相关业务,最后发送短信通知车主收费开始.看 ...

  9. Java 并发框架Disruptor(七)

    Disruptor VS BlockingQueue的压测对比: import java.util.concurrent.ArrayBlockingQueue; public class ArrayB ...

随机推荐

  1. Intellij IDEA 文件修改提示星号

    https://www.cnblogs.com/zheting/p/7594073.html

  2. canvas实现五子棋界面

    1.获取canvas画布 var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); ...

  3. springmvc关于redisCluster的使用及配置

    首先附上maven仓库jar包的下载地址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-loca ...

  4. WPF和js交互 WebBrowser数据交互

    this.webBrowser1.ObjectForScripting = new OprateBasic(); this.webBrowser1.Source = new Uri(Environme ...

  5. 12th 本周工作量及进度统计

    本周PSP: C(类别) C(内容) S(开始时间) ST(结束时间) I(中断时间) T(实际时间) 活动 1日—3日 用户调查 12月1日21:00 12月3日12:00 25小时 14小时 活动 ...

  6. Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager

    文章地址: Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager 1.使用ViewPager + PagerAdapter 每个页面的内容都 ...

  7. BZOJ5418 NOI2018屠龙勇士(excrt)

    显然multiset求出每次用哪把剑.注意到除了p=1的情况,其他数据都保证了ai<pi,于是先特判一下p=1.比较坑的是还可能存在ai=pi,稍微考虑一下. 剩下的部分即解bix≡ai(mod ...

  8. LOJ2541 PKUWC2018猎人杀(概率期望+容斥原理+生成函数+分治NTT)

    考虑容斥,枚举一个子集S在1号猎人之后死.显然这个概率是w1/(Σwi+w1) (i∈S).于是我们统计出各种子集和的系数即可,造出一堆形如(-xwi+1)的生成函数,分治NTT卷起来就可以了. #i ...

  9. SSM 项目搭建 (IDEA)

    好好想了想,还是准备给大家发一个简单的SSM的项目搭建教程. 我觉得通常来说,只是XML的配置文件可能让人头痛了点,其他的倒真不是问题. 不过话说回来,mybatis一直让我觉得用起来不方便.因为数据 ...

  10. Emacs_快捷键列表

    Emacs_快捷键列表 emacs -nw 以终端模式运行emacsLC_CTYPE=zh_CN.UTF-8 emacs C = Control M = Meta = Alt | EscAlt 可以粘 ...