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 閱讀(257) 評論(0)  編輯  收藏 所屬分類: STORM

          主站蜘蛛池模板: 文山县| 遂昌县| 内丘县| 济源市| 高要市| 鲁山县| 柳林县| 阆中市| 万全县| 沛县| 松原市| 嘉义县| 襄汾县| 黄浦区| 沐川县| 罗江县| 廉江市| 南部县| 南投县| 湘西| 霍城县| 丰顺县| 大悟县| 邵武市| 迁西县| 板桥市| 青岛市| 靖安县| 岳普湖县| 威远县| 阿拉善盟| 高清| 肥城市| 新源县| 阿拉善右旗| 长宁县| 天祝| 高碑店市| 南宁市| 浏阳市| 伽师县|