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 阅读(241) 评论(0)  编辑  收藏 所属分类: STORM


只有注册用户登录后才能发表评论。


网站导航: