刚刚听说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. Hadoop 5 Hbase 遇到的问题

    hbase伪分布式配置完成后: 在bin/hbase shell 进行create操作时出现:Can't get master address from ZooKeeper; znode data = ...

  2. 完善好的web项目(校园包车)

  3. Web项目--------原Oracle数据库的项目同时兼容MySql

    原Oracle数据库的项目同时兼容MySql步骤: (一)修改资源配置文件applicationContext-dataSource.xml的数据库连接 Oracle数据库中加上from dual的原 ...

  4. 实现项目WC

    软件的需求分析 程序处理用户需求的模式为: wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数与程序交互,需实现的功能如下: 1.基本功能 支持 - ...

  5. Arduino与Air800开发板使用UART通信:传输DHT22传感器数据

    硬件介绍 Arduino Leonardo在数字引脚0(RX)和1(TX)进行串口通信时是使用“Serial1”,USB的串口通信使用的是“Serial”.在数字引脚0(RX)和1(TX)与USB是相 ...

  6. ElasticSearch 2 (12) - Shard数调优(ElasticSearch性能)

    ElasticSearch 2 (12) - Shard数调优(ElasticSearch性能) 摘要 当创建一个索引的时候,我们经常会面对一个问题:要为索引分配多少个shard?多少个replica ...

  7. [转帖] wordpress 的安装过程

    https://blog.csdn.net/qq_34364668/article/details/78116473 下载Wordpress wget http://wordpress.org/lat ...

  8. postman 学习网址

    postman使用详解: http://gold.xitu.io/entry/57597a62a341310061337885 https://www.getpostman.com/docs/writ ...

  9. selenium_UI自动化——篇1(基础)

    元素定位的几种方式: (1)driver.find_element_by_id("idname") (2)driver.find_element_by_name("nam ...

  10. binlog2sql闪回恢复数据

    用途: .数据快速回滚 .从binlog生成标准sql 使用限制: .必须设置binlog_format=ROW .binlog_row_image=full,该参数默认为FULL .恢复用户拥有的最 ...