- 若bolt的并發(fā)度為N(N > 1),則會有N個task來執(zhí)行此component。那這些task是公用一個bolt實例,還是為每個task都創(chuàng)建一個bolt實例呢?
答:從Task的創(chuàng)建過來看,每個task都會創(chuàng)建自己的bolt實例。
com.alibaba.jstorm.task.Task
public Task(WorkerData workerData, int taskId) throws Exception {
...
this.taskObj = Common.get_task_object(
topologyContext.getRawTopology(), componentId, WorkerClassLoader.getInstance());
...
}
com.alibaba.jstorm.cluster.Common
public static Object get_task_object(StormTopology topology, String component_id, URLClassLoader loader) {
...
Object rtn;
if (componentObject instanceof JavaObject) {
rtn = Thrift.instantiateJavaObject((JavaObject) componentObject);
}
...
return rtn;
}
- 延時調(diào)度 / 窗口式調(diào)度 / 節(jié)拍式調(diào)度:若期望bolt的執(zhí)行具有下列特點,可使用storm的定時任務來完成
- bolt每次執(zhí)行要有時間間隔
- bolt微批量消費數(shù)據(jù)
- 高頻冪等