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

          主站蜘蛛池模板: 左权县| 阿克苏市| 万盛区| 玉溪市| 建始县| 大姚县| 恩平市| 河曲县| 五家渠市| 湘阴县| 盖州市| 泉州市| 泌阳县| 宁蒗| 康保县| 盱眙县| 密山市| 新余市| 句容市| 敖汉旗| 大宁县| 温宿县| 苗栗县| 惠来县| 天门市| 诸城市| 长子县| 安岳县| 集安市| 白水县| 永定县| 容城县| 汝州市| 微博| 卢氏县| 永福县| 资源县| 西昌市| 尖扎县| 阿合奇县| 通化县|