原创 數據異構之 Canal 初探(技巧篇)

源碼分析 Canal 系列開始了,一個全新的系列,即能探討 canal 本身的實現原理,也是筆者源碼閱讀技巧的展示。 本節目錄1、應用場景2、架構設計原理3、在 IntelliJ IDEA 中運行 Canal Demo 1、應

原创 源碼分析 RocketMQ DLedger 多副本即主從切換實現原理

DLedger 基於 raft 協議,故天然支持主從切換,即主節點(Leader)發生故障,會重新觸發選主,在集羣內再選舉出新的主節點。 RocketMQ 中主從同步,從節點不僅會從主節點同步數據,也會同步元數據,包含 topic

原创 我的另一種參與 RocketMQ 開源社區的方式

首先先“SHOW”一波我在 RocketMQ 開源社區所獲得的成就:2019年RocketMQ社區授予我優秀佈道師榮譽稱號,證書很高大上,獎品豐厚哦。 佈道師是什麼?開源項目不是都在追求如何成爲一名 Committer?其實這個

原创 結合 Sentinel 專欄談談我的源碼閱讀技巧

本文行文思路:先拋出源碼閱讀方法,然後結合Sentinel創作過程談談具體是如何運用這些技巧,最後解答幾個源碼閱讀的誤區。 Sentinel 系列共包含15篇文章,主要以源碼分析爲手段,圖文並茂的方式對 Sentinel 的架

原创 Sentinel 系統自適應限流原理剖析與實戰指導

看到標題中的幾個關鍵字系統自適應限流是不是覺得高大上,這個自適應又是如何實現的呢? 1、Sentinel 系統自適應概述 從官方瞭解到 Sentienl 系統自適應限流是一個全局的概念,對應用入口流量統一進行統一控制,結合應用的機

原创 RocketMQ一行代碼造成大量消息發送失敗

1、問題現象 首先接到項目反饋使用 RocketMQ 會出現如下錯誤: 錯誤信息關鍵點:MQBrokerException:CODE:2 DESC:[TIMEOUT_CLEAN_QUEUE]broker busy,start f

原创 Sentinel Dubbo 適配器看限流與熔斷(實戰思考篇)

本文是源碼分析 Sentinel 系列的第十三篇,已經非常詳細的介紹了 Sentinel 的架構體系、滑動窗口、調用鏈上下文、限流、熔斷的實現原理,相信各位讀者朋友們對Sentinel有一個較爲體系化的認知了,這個時候是該開始如何

原创 源碼分析Sentinel專欄

源碼分析Sentinel系列是打造的又一重磅專題,詳細介紹了限流、熔斷的實現原理。 1、Alibaba Sentinel 限流與熔斷初探(技巧篇) 2、源碼分析 Sentinel 之 Dubbo 適配原理 3、源碼分析 Aliba

原创 Sentinel 集羣限流設計原理

本節目錄1、集羣限流使用場景2、集羣限流與單機限流的異同思考3、探究集羣限流實現原理3.1 ClusterBuilderSlot 詳解3.2 集羣限流模式實現原理3.2.1 DefaultClusterTokenClient 詳解

原创 Sentienl 動態數據源架構設計理念與改造實踐

在介紹集羣限流之前需要首先掌握動態數據源的配置方式,本文將根據 Sentinel 官方提供的代碼提出整體架構思路,並最終給出實踐指導。 溫馨提示:本文主要分爲動態數據源架構設計理念、從官方示例尋找改造思路、基於SpringBoo

原创 源碼分析 Sentinel DegradeSlot 熔斷實現原理

本節目錄1、DegradeSlot 概述2、DegradeRule 詳解2.1 DegradeRule 類圖2.2 passCheck方法詳解 1、DegradeSlot 概述 Sentinel 中的熔斷實現類爲 DegradeS

原创 Sentienl 流控效果之勻速排隊與預熱實現原理與實戰建議

本節目錄1、RateLimiterController2、WarmUpController2.1 WarmUpController 構造函數2.2 canPass 方法詳解3、總結 溫馨提示,如果大家對源碼不感興趣,可以直接跳到

原创 源碼分析RateLimiter SmoothWarmingUp 實現原理(文末附流程圖)

上一篇詳細介紹了 SmoothBursty 的實現原理,本文將介紹帶有預熱機制的限速器實現原理。 本節目錄1、類圖2、SmoothWarmingUp 創建流程3、SmoothWarmingUp acquire 流程4、總結 1、類

原创 Sentinel FlowSlot 限流實現原理(文末附流程圖與總結)

Sentinel 觸發限流的實現類爲 FlowSlot。我們再來簡單思考一下,要實現觸發限流,至少需要完成如下幾件事情: 收集實時調用信息。 設置觸發限流規則 根據限流規則與調用信息來決定是否對請求進行限流等。 如何收集實時調

原创 RocketMQ msgId與offsetMsgId釋疑(實戰篇)

本篇詳細介紹消息發送、消息消費、RocketMQ queryMsgById 命令以及 rocketmq-console 等使用場景中究竟是用的哪一個ID。 本節目錄1、拋出問題1.1 從消息發送看消息ID1.2 從消息消費看消息I