paulwong

          淺釋STORM

          STORM是一個消息處理引擎,可以處理源源不斷的進來的消息,這些消息的處理是可以按步驟的。

          處理的方式有各種自定義:

          1. 可自定義消息處理的步驟

          2. 可自定義每種類型的消息需要多少個進程來處理

          3. 每個步驟里的消息是在某個進程里的線程來做處理的

          4. 可自定義每個步驟里的消息的線程數

          5. 可以增加和刪除要處理的消息類型
          如果要處理某種消息了,要怎么辦呢?

          1. 定義數據來源組件(SPOUT)

          2. 定義處理步驟(BOLT)

          3. 組合成一個消息處理流程框架TOPOLOGY

          4. 定義處理消息的進程的數量、定義每個步驟并發時可用的線程數

          5. 部署TOPOLOGY
          當一個TOPOLOGY被部署到STORM時,STORM會查找配置對象的WORKER數量,根據這個數量相應的啟動N個JVM,然后根據每個步驟配置的NUMTASKS生成相應個數的線程,然后每個步驟中配置的數量實例化相應個數的對象,然后就啟動一個線程不斷的執行SPOUT中的nextTuple()方法,如果這個方法中有輸出結果,就啟動另一線程,并在此線程中將這個結果作為參數傳到下一個對象的excue方法中。

          如果此時又有一個步驟BOLT需要執行的話,也是新取一個線程去執行BOLT中的方法啟動的線程不會越過NUMTASKS的數量。



          posted on 2014-05-09 22:56 paulwong 閱讀(256) 評論(0)  編輯  收藏 所屬分類: STORM

          主站蜘蛛池模板: 贵定县| 色达县| 罗江县| 澎湖县| 玛纳斯县| 镇康县| 中阳县| 富平县| 焦作市| 理塘县| 沙田区| 襄汾县| 静乐县| 惠安县| 九江县| 阳山县| 新田县| 贡嘎县| 防城港市| 怀集县| 德保县| 池州市| 忻州市| 元谋县| 防城港市| 望奎县| 马关县| 高安市| 财经| 贵定县| 全南县| 宁南县| 舟山市| 甘洛县| 敦化市| 恩平市| 福泉市| 张北县| 通化县| 德庆县| 宜州市|