storm原始碼閱讀筆記之任務排程演算法

2022-09-19 10:15:14 字數 1053 閱讀 8673

主要流程梳理:獲得當前集群空閒資源->計算當前topology的executor資訊(分配時會用得上)->計算可重新分配和可釋放的資源->分配

eventscheduler排程演算法與default相比少了乙個計算可重新分配資源的環節,直接利用supervisor中空閒的slot進行分配,在此不再細講。

這兩種排程機制在一般情況下排程結果基本保持一致,所以一起來看:

集群初始狀態

接下來我們提交3個topology

topology

worker

executer

task

t-138

16t-2510

10t-335

10分配後集群狀態為:

分配後集群狀態為:

分配後集群狀態為:

如圖,此任務排程方式也不是絕對均勻的,s1已經滿負荷運轉,而s4才剛使用乙個slots。

此篇用到的演算法如comput-executors、sort-slots、slots-can-reassign、bad-slots、sort-slots等會在下篇部落格中專門**

原始碼閱讀 Glide原始碼閱讀之with方法(一)

前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...

原始碼閱讀 Glide原始碼閱讀之load方法(二)

原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 首先,load方法有以下幾個過載方法 public requestbuilder load nullable bitmap bitmap public requestbuilder load nu...

閱讀筆記 fsnotify原始碼閱讀

fsnotify的github位址是 fsnotify是乙個資料夾監控應用。可以使用建立乙個watcher來對某個資料夾進行監控 檔案目錄很簡單,實際就兩個程式檔案,fsnotify.go 和 各平台的fsnotify go 後乙個檔案是各個不同平台的實現 example test.go中給的是最簡...