原创 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執行成