1、一个小集群中,每秒可以处理数以百万计的消息。
流是一个不间断的,无界的连续tuple(元组)
2、主:Nimbus 守护进程 从:Supervisor 守护进程
zookeeper协调而不传递消息
3、每一个工作进程执行一个topology子集
4、nimbus是快速失败和无状态的,所有的状态要么存在zookeeper中,要么在本地磁盘
5、具体处理事务进程worker:运行具体处理组件逻辑的进程
6、具体处理线程task:worker中的每一个spout/bolt线程称为一个task
7、v0.8后task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为Executor
8、storm集群中每台机器运行多个进程,每个进程创建多个线程,每个线程执行多个任务,任务是进行数据处理的实体。
9、高可靠性:保证每条消息都能被处理
----消息处理失败
----在限定时间内未被完全处理
消息重发
对消息树中所有消息的唯一进行异或计算,通过是否为0来判定spout发出的消息是否被完全处理。
这种模式下,每条消息会同步发送一个ack/fail,对带宽有一定的消耗,如对可靠性要求不高,可使用不同emit,关闭该模式
10、storm保证每条消息至少被处理一次,v0.7.0引入事务性拓扑,保证每条消息只处理一次