OutOfMemoryError 问题相信很多朋友都遇到过,相对于常见的业务异常(数组越界、空指针等)来说这类问题是很难定位和解决的。 本文以最近碰到的一次线上内存溢出的定位、解决问题的方式展开;希望能对碰到类似问题的同学带来思路和帮助。 ...
分类:
其他好文 时间:
2018-08-29 10:50:48
阅读次数:
171
简介 Apache Log4j 2 是Log4j 的升级版,在该版本实现中,日志的处理流程及效率有了显著提升。 此外新版本也合入了一些logback日志框架体系的一些改进点。 关键特性 API分离,接口与实现分离,便于扩展 性能提升,框架基于LMAX Disruptor库实现了下一代的 Asynch ...
分类:
其他好文 时间:
2018-07-03 22:37:40
阅读次数:
186
Disruptor作者,介绍Disruptor能每秒处理600万订单。这是一个可怕的数字。 disruptor之所以那么快,是因为内部采用环形队列和无锁设计。使用cas来进行并发控制。通过获取可用下标来对事件发布和消费 下标通过cas控制(Atomic) disruptor组成部分 1.Disrup ...
分类:
其他好文 时间:
2018-05-06 13:34:37
阅读次数:
270
一、什么是Disruptor 从功能上来看,Disruptor 是实现了“队列”的功能,而且是一个有界队列。那么它的应用场景自然就是“生产者-消费者”模型的应用场合了。 可以拿 JDK 的 BlockingQueue 做一个简单对比,以便更好地认识 Disruptor 是什么。 我们知道 Block ...
分类:
编程语言 时间:
2018-04-14 11:16:08
阅读次数:
205
张善友15年底分享的博客:千万级规模高性能、高并发的网络架构经验分享 张开涛17年5月出版的书籍:《亿级流量网站架构核心技术》 提到Disruptor + Redis队列 关于Disruptor的介绍:http://ifeve.com/disruptor/ ...
分类:
其他好文 时间:
2018-03-25 19:24:26
阅读次数:
148
最近在看disruptor源码,在获取ringbuffer的下一个序列的时候,disruptor有几种等待策略,其中有YieldingWaitStrategy类,是使用java的Thread.yield();方法作为等待的方式,了解了一下 Yield不能保证使得当前正在运行的线程迅速转换到可运行的状 ...
分类:
编程语言 时间:
2018-02-27 01:14:40
阅读次数:
173
核心术语 RingBuffer(容器): 被看作Disruptor最主要的组件,然而从3.0开始RingBuffer仅仅负责存储和更新在Disruptor中流通的数据。对一些特殊的使用场景能够被用户(使用其他数据结构)完全替代。 Sequence(槽位置): Disruptor使用Sequence来 ...
分类:
其他好文 时间:
2017-12-25 23:20:04
阅读次数:
397
框架简介 Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在 中,使`用 方式 ...
分类:
其他好文 时间:
2017-12-25 22:16:02
阅读次数:
164
并发框架Disruptor译文 Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运 ...
分类:
其他好文 时间:
2017-11-25 22:36:21
阅读次数:
123
队列的作用是缓冲 缓冲到 队列的空间里。。 线程间共享数据无需竞争 原文 地址 作者 Trisha 译者:李同杰 LMAX Disruptor 是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖。本文将用图表的方式为大家介绍Disruptor是什么,用来做什么,以及简单介绍背后的实现 ...
分类:
编程语言 时间:
2017-11-21 14:26:09
阅读次数:
122