Datax并发数确定

Datax并发数确定

并发数的确实是dataxjobContainer的工作,具体入口在JobContainer#adjustChannelNumber中.

主要限制条件有三个: byteNumRecordNum以及直接的channelNum

总结来说:

  1. 是否有全局(job) byte限制,如果有,则必须要有channelbyte设置,最后计算出 需要的channelByByte数量。
  2. 是否有全局(job) record限制,如果有,则必须要有channelrecord设置,最后计算出 需要的channelByRecord数量。
  3. 取1和2的最小值设置到jobchannelNumber,如果可以设置,则该方法任务完成,退出。
  4. 如果3 未能设置,则从cfg中判断用户是否自己设置了channelNum,如果用户设置了,将用户设置的给本job channel
    private void adjustChannelNumber() {
   
        // 通道数限制范围计算
        int needChannelNumberByByte = Integer.MAX_VALUE;
        int needChannelNumberByRecord = Integer.MAX_VALUE;

        // 看job.json文件中是否有配置JOB_SETTING_SPEED_BYTE,如果有则返回true 没有则返回false
        boolean isByteLimit = (this.configuration.getInt(
                CoreConstant.DATAX_JOB_SETTING_SPEED_BYTE, 0) > 0);
        if (isByteLimit) {
   
            long globalLimitedByteSpeed = this.configuration.getInt(
                    CoreConstant

你可能感兴趣的:(java,java)