美文网首页
JStorm基础问题

JStorm基础问题

作者: w黄杨w | 来源:发表于2017-06-22 16:05 被阅读0次
    • 若bolt的并发度为N(N > 1),则会有N个task来执行此component。那这些task是公用一个bolt实例,还是为每个task都创建一个bolt实例呢?
      答:从Task的创建过来看,每个task都会创建自己的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;
    } 
    
    • 延时调度 / 窗口式调度 / 节拍式调度:若期望bolt的执行具有下列特点,可使用storm的定时任务来完成
      • bolt每次执行要有时间间隔
      • bolt微批量消费数据
      • 高频幂等

    相关文章

      网友评论

          本文标题:JStorm基础问题

          本文链接:https://www.haomeiwen.com/subject/upefcxtx.html