企業(yè)畫冊設(shè)計(jì)排版360優(yōu)化大師最新版的功能
?簡介
? ? ? ?彈性資源組件提供動(dòng)態(tài)資源能力,是分布式系統(tǒng)關(guān)鍵基礎(chǔ)設(shè)施,分布式datax,分布式索引,事件引擎都需要集群和資源的彈性資源能力,提高伸縮性和作業(yè)處理能力。
? ? ? ?本文介紹彈性資源組件的設(shè)計(jì),包括架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì),指導(dǎo)開發(fā)人員代碼開發(fā),設(shè)計(jì)基于《flink原理源碼分析(一) 集群與資源@k8s》,抽出作業(yè)管理器,包括其內(nèi)部的調(diào)度器,通用化為資源消費(fèi)者,標(biāo)準(zhǔn)化與資源管理器和任務(wù)管理器的交互接口;增加約束,如,組件間通訊rpc組件,高可用組件,心跳組件等,最大程度使用原flink代碼,后續(xù)的迭代不斷標(biāo)準(zhǔn)化,抽象化交互接口,支持不同的實(shí)現(xiàn)。
? ? ?本文是彈性資源組件設(shè)計(jì)最后一章,描述任務(wù)管理器的設(shè)計(jì)和資源消費(fèi)者規(guī)范
技術(shù)架構(gòu)
彈性資源組件的技術(shù)架構(gòu)圖,其中作業(yè)管理器接入系統(tǒng)提供,需實(shí)現(xiàn)與資源管理器和任務(wù)管理器的交互, 還有一些技術(shù)要求。
總體架構(gòu)是master-worker,master的高可用是k8s的復(fù)制機(jī)制提供,選主機(jī)制k8s提供,作業(yè)管理器和資源管理器參與選主,作業(yè)管理器/任務(wù)管理器接入資源管理器主節(jié)點(diǎn)監(jiān)聽,獲取最新資源管理器;作業(yè)管理器接入作業(yè)管理器主節(jié)點(diǎn)監(jiān)聽,獲取最新的作業(yè)管理器主節(jié)點(diǎn)
數(shù)據(jù)架構(gòu),資源是組件的核心數(shù)據(jù),分兩條線a線 現(xiàn)有資源,b線 待定資源
- 4資源請求->5a 分配可用資源-> 6a 請求使用資源-> 7a 提供資源->8a 提交任務(wù)
- 4資源請求->5b 分配待定資源-> 6b 請求新worker-> 7b 啟動(dòng)任務(wù)管理器->8b 注冊/報(bào)告資源
a線是分配現(xiàn)有資源;b線請求新資源,新資源注冊后是現(xiàn)有資源,在a線分配
組件架構(gòu)
上圖彈性資源組件架構(gòu),作為SDK,提供RPC,slot池,心跳,高可用等組件支持,這些組件有約束的,有可選用的
任務(wù)管理器模塊
任務(wù)管理器,資源的擁有者,負(fù)責(zé)報(bào)告資源槽,執(zhí)行任務(wù)
《提供資源》是《請求使用資源》的關(guān)聯(lián)用例,任務(wù)管理器向資源消費(fèi)者確認(rèn)提供資源消費(fèi)者所需資源
請求使用資源/提供資源
資源管理器分配資源,匹配了合適的空閑資源slot,資源管理器請求資源所在的任務(wù)管理器使用資源,任務(wù)管理器確認(rèn)使用后,通知資源使用者
- 資源管理器向資源所在的任務(wù)管理器TaskExecutor發(fā)出使用請求requestSlot
- TaskExecutor調(diào)用allocateSlotForJob,登記資源使用,登記信息包括jobId, slotId, allocationId, resourceProfile, targetAddress等
- TaskExecutor rpc-offerSlots通知ResourceConsumer確認(rèn)提供該資源
- ResourceConsumer轉(zhuǎn)交SlotPool的offerSlots處理,同樣,最終處理是DeclarativeSlotPool
- DeclarativeSlotPool的matchOfferWithOutstandingRequirements匹配offerSlot與未完成的資源請求,構(gòu)建AllocatedSlot
- 最后AllocatedSlot放入分配池AllocatedSlotPool,返回接收的offerSlots給TaskExecutor處理,沒有匹配部分沒有使用,無需返回
本節(jié)描述基于資源消費(fèi)者使用彈性資源提供的slot池組件,管理獲提供的資源,資源消費(fèi)者也可自行實(shí)現(xiàn)資源管理
提交任務(wù)/載入和啟動(dòng)任務(wù)
資源消費(fèi)者獲得資源后,提交任務(wù)配置,包括任務(wù)的類型和參數(shù),任務(wù)管理器啟動(dòng)任務(wù)
資源消費(fèi)者規(guī)范
本節(jié)介紹系統(tǒng)使用彈性資源組件的規(guī)范,系統(tǒng)接入彈性資源組件,提供資源消費(fèi)者實(shí)現(xiàn)
- 資源消費(fèi)者需接入彈性資源的高可用機(jī)制,任務(wù)管理器監(jiān)聽資源消費(fèi)者主節(jié)點(diǎn)變更
- 資源消費(fèi)者需使用彈性資源的rpc組件實(shí)現(xiàn)規(guī)范的輸入和輸出接口
- 資源消費(fèi)者與資源管理器和任務(wù)管理器間的心跳(HeatBeat),以及實(shí)現(xiàn)心跳超時(shí)資源的釋放,重連