- 博客(10)
- 收藏
- 关注
原创 Arthas从入门到精通(三) 理解的前提-ClassLoad机制应用
背景前面已经分析过java的classLoader模型以及双亲委派机制的实现。 这里主要分析一下如何应用classLoader的简单应用,以及在一些主流框架上的实践分析。
2021-07-30 20:27:22 411
原创 Arthas从入门到精通(一) 整体概览
背景Arthas是Alibaba开源的Java诊断工具 dashboard 实时查看系统的运行状况 查看入参/返回值/异常 查看函数调用的参数,返回值和异常 在线热更新 jad/sc/redefine 一条龙热更新代码 类冲突 秒解类冲突问题,定位类加载路径 性能热点 快速定位应用的热点,生成火焰图 WebConsole 在线诊断,点开网页诊断线上应用 概览// QuickStartcurl -O https://arthas.aliyun..
2021-07-29 20:52:04 256
原创 Disruptor源码解析四 消费者的组织串联
前言之前介绍了RingBuffer和内部Sequencer的具体实现,disruptor的生产者操作直接用ringBuffer的相关接口调用即可。 本节主要解释一下,消费者的主要串联方式。消费者架构消费者的组织一个生产者P1与三个消费者C1、C2、C3,C3的事件处理需要C1与C2先完成。则该模型结构如下:代码详解一个消费者的具体处理,必须实现...
2021-05-27 12:33:30 506 1
原创 Disruptor源码解析一 Disruptor高性能之道
简介LMAX Disruptor是一个高性能的线程间消息库。它源于LMAX对并发性,性能和非阻塞算法的研究,如今构成了Exchange基础架构的核心部分。 Disruptor它是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖,能够在无锁的情况下实现网络的Queue并发操作。 Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。运行架构架构图:具体运行示例图:一
2021-05-11 11:20:53 816
原创 Disruptor源码解析三 RingBuffer解析
前言前面篇章介绍了下Sequence相关类,这里主要介绍下集成了Sequence类的disruptor主要结构RingBuffer。主要内容类的继承结构:类的主要成员:RingBuffer的要点避免缓存行伪共享RingBufferFields中entries数组, 前后都加了缓存行填充避免伪共享。预初始化entries预先都用工厂类进行了构造集成了Sequencer使用的是SingleProducerSequencer 或者MultiProducerSeque.
2021-05-11 10:53:41 747
原创 Disruptor源码解析二 Sequence相关类解析
前言之前介绍了disruptor的架构和性能对比,这里主要梳理一下disruptor的Sequence相关类。主要内容 Sequence (一个序号, 内有缓存行优化和CAS, 可以类比AtomicLong理解) Sequenced (面向生产者的查询发布接口) -> Sequencer (序号生成器, 生产者发布, 消费者查询)-> AbstractSequencer -> SingleProducerSequencer MultiProducerS...
2021-05-09 23:28:01 1059
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人