storm的并发机制
storm的并发机制
storm计算支持在多台机器上水平扩容,通过将计算切分为多个独立的tasks在集群上并发执行来实现。
一个task可以简单地理解:在集群某节点上运行的一个spout或者bolt实例。
topology的组成部分:
Nodes(服务器):配置在一个storm集群中的服务器,会执行topology的一部分运算。一个storm集群可以包括一个或者多个工作node;
Workers(JVM虚拟机):一个NOde上相互独立运行的JVM进程。每个Node可以配置运行一个或者多个worke.一个topology会分配到一个或者多个worker上运行。
Executor(线程):一个worder的JVM进程中运行的java线程。多个task可以指派给同一个executer来执行。除非是明确指定,storm默认给每个executor分配
一个task。
Task(bolt/spout 实例):task是spout和bolt的实例,它们的nextTuple()和execute()方法会呗executors线程调用执行。
并发机制:
storm默认并发设置默认为1;
执行流程:
假设有一台服务器,配置了一个node,为topolofy分配了一个worker,并且每个executer执行一个task。
如图所示:
<实时分布式>