原创 Concurrent包源碼解讀之CountDownLatch,Semaphore,CyclicBarrier
Concurrent包源碼解讀之CountDownLatchSemaphoreCyclicBarrier CountDownLatch CountDownLatch使用案例 CountDownLatch源碼分析 CyclicBar
原创 Zeus源碼剖析之事件處理機制
Zeus的事件處理機制中對觀察着模式的應用可以說是用到了極致,因此在分析解讀zeus中的事件處理機制之前,我們先簡單的腦補一下觀察者設計模式。觀察者設計模式,簡單來說,就是一個對象觀察另一個對象,當被觀察的對象發生變化時,觀察者也會跟着變
原创 hera(赫拉)任務調度系統--爲數據平臺打造的任務調度系統
hera(赫拉)任務調度系統–爲數據平臺打造的任務調度系統 hera項目背景 在大數據平臺,隨着業務發展,每天承載着成千上萬的ETL任務調度,這些任務集中在hive,shell腳本調度。怎麼樣讓大量的ETL任務準確的完成調度而不出現問
原创 Concurrent包源碼解讀之ReentrantLock,ReentrantReadWriteLock
ReentrantLock概述 ReentrantLock的內部同步方式實現 ReentrantLock的構造函數 ReentrantLock的內部實現 總結 ReentrantReadWriteLock的實現概述 Reent
原创 HashedWheelTimer實現定時調度任務以及源碼分析
HashedWheelTimer實現定時調度任務 HashedWheelTimer 主要用來高效處理大量定時任務, 且任務對時間精度要求相對不高, 比如鏈接超時管理等場景, 缺點是, 內存佔用相對較高. @Test pu
原创 Netty源碼分析之ChannelPipeline
Channel 與 ChannelPipeline ChannelPipeline 的初始化再探 ChannelPipeline 實例化過程 ChannelInitializer 的添加 自定義 ChannelHandler 的
原创 java8實戰:Stream執行原理
Stream流操作 Java 8 Stream 什麼是 Stream Stream流操作API分類 Stream流操作高級API實例 規約reduce 接口的靜態方法和默認方法 方法引用 收集器Collector 使用collect
原创 JVM運行時數據區
JVM運行時數據區(JVM Runtime Area) 其實就是指JVM在運行期間,其對計算機內存空間的劃分和分配。本文主要從以下幾個方面討論JVM運行時數據區主要分爲幾部分: 1. JVM運行數據區裏面有什麼? 2. 虛擬機棧
原创 線程池ThreadPoolExecutor源碼解析
ExecutorService接口定義 在解讀ThreadPoolExecutor源碼之前,先解讀關於線程池實現底層定義的的接口ExecutorService,定義了一些方法管理任務中止或者返回一個Future用以獲取一個或者多個異步任
原创 NIO學習筆記通道Channel
通道基礎 ScatterGather Socket通道 socket 和 socket 通道之間的關係 非阻塞模式 ServerSocketChannel SocketChannel DatagramChannel 管道 通道
原创 Concurrent包源碼解讀之AbstractQueuedSynchronizer
Concurrent包源碼解讀之AbstractQueuedSynchronizer AQS 設計思想 AQS框架調用方式 AQS源碼詳解 1 不響應中斷的獨佔鎖獲取鎖的流程 2 響應中斷的獨佔鎖獲取鎖的流程 3 不響應中斷的共享鎖
原创 Netty粘包/拆包解決方案
TCP粘包/拆包問題 TCP粘包和拆包示意圖如下: TCP粘包/拆包 假設客戶端分別發送了兩個數據包D1和D2給服務端,由於服務端一次讀到的字節數是不確定的,故可能存在以下4中情況. 1. 服務端分兩次讀取到了兩個獨立的數據包
原创 Spark RPC架構源碼解讀
Spark RPC基本架構 spark-network-common模塊通過Netty4的基礎api實現了Spark中整個核心的RPC實現過程。Spark中RPC框架架構基本架構圖如下: Spark的RPC框架所包含的各個組件如下:
原创 觀察者模式
觀察者模式 程序設計的六大基本原則 在學習設計模式之前,爲了不讓設計模式顯得很模式,我們還必須瞭解一個東西,那就是程序設計六大原則。 這些原則是指導模式的規則,我會給一些原則附上一個例子,來說明這個原則所要表達的意思,注意,原則是
原创 Zeus源碼解讀之定時任務執行與手動執行任務的過程分析
Zeus源碼解讀之定時任務執行與手動執行任務的過程分析 zeus集羣依賴任務執行模式 宙斯中任務出去任務獨立調度之外,支持任務直接的複雜依賴調度,如下圖一所示: 圖1 A爲根任務,B,C依賴A任務,D任務依賴B,C,只有當A執行成