JStorm之Supervisor啟動流程

2021-06-28 05:13:24 字數 3516 閱讀 1484

4、分配新的任務

該元件主要包含:心跳執行緒、supervisor事件接受執行緒、處理執行緒,一旦事件接受到則會進入任務分配環節,主要邏輯**如下:

public static void main(string args)

public void run()  catch (exception e) 

while (supervisormanager.isfinishshutdown() == false) catch (interruptedexception e)

}}

下面看元件啟動的主方法

public supervisormanger mksupervisor(map conf, icontext sharedcontext)

throws exception

vectorthreads = new vector();

// step 5 create heartbeat

/** 建立heatbeat執行緒,並每隔supervisor.heartbeat.frequency.secs秒傳送一次心跳,更新zk裡的znode

* znode節點為:/supervisors/supervisor-id (0add54ac-2c23-49bc-aaee-05b3cb9fef00)

* 會更新該節點的如下資訊:supervisorinfo[hostname=rt2l02046.tbc,

* supervisorid=0add54ac-2c23-49bc-aaee-05b3cb9fef00,

* timesecs=1421219320,

* uptimesecs=908,

* workerports=[6801, 6800, 6803, 6802]]

* */

heartbeat hb = new heartbeat(conf, stormclusterstate, supervisorid,

active);

hb.update();

asyncloopthread heartbeat = new asyncloopthread(hb, false, null,

thread.min_priority, true);

threads.add(heartbeat);

// sync heartbeat to apsara container

asyncloopthread synccontainerhbthread = synccontainerhb.mksupervisorinstance(conf);

if (synccontainerhbthread != null)

// step 6 create and start sync supervisor thread

// every supervisor.monitor.frequency.secs second run syncsupervisor

/** 建立兩個同步執行緒,syncsupervisorevent和syncprocessevent分別用來接收事件和處理事件,

* 與topology關係比較密切,在topology提交的時候再詳細介紹

//step 8 上傳監控資訊

Linux之程序管理工具supervisor

環境 centos 7 官方文件 yum install y epel release yum install y supervisor supervisord c etc supervisord.conf ps ef grep supervisor root 19703 1 0 17 32 00 ...

nodejs 自動重啟服務 supervisor

根據github上的說明,node supervisor原本是用於伺服器上node.js應用崩潰的時候,自己重新啟動。當然它也可以監控你的專案的js 或coffeescript 檔案變化,進而重啟來方便我們除錯應用程式。安裝方法 以全域性模組安裝 複製 如下 npm install supervis...

JStorm之Topology提交客戶端

乙個topology包含一或多個spout bolt,spout負責在資料來源獲得資料並傳送給bolt,每個bolt負責做完處理後發給下乙個bolt。通常topology的建立是由topologybuilder來建立的,該元件會記錄包含哪些spout bolt,並做相應驗證 各元件是否有id衝突,校...