datax参数设置_Datax3.0中配置解读(4)

本文总结了DataX3.0中core.json和job.json的参数配置,包括core.container.taskGroup.channel、core.transport.channel.speed.byte和core.transport.channel.speed.record等,探讨了它们如何影响TaskGroup并发数和限速策略。通过实例解释了全局限速的计算方式,并指出限速和调整channelNumber的逻辑,为理解和优化DataX任务提供了指导。
摘要由CSDN通过智能技术生成

针对几个参数的配置,之前根据阅读源码做了一些解读,这里做一下总结.

core.json

1-core.container.taskGroup.channel

1.1将拆分成的Task重新组合后 组装成的TaskGroup(任务组),默认启动的线程数量去执行这些Task

1.2和job配置中的channel配合使用,可以提高taskGroup的并发个数(前提是没有配置byte和record)

每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。

2-core.transport.channel.speed.byte

2.1首先作为单个channel的byte大小限速参数

2.2和job中配置的job.setting.speed.byte配合使用,可以提高taskGroup的并发个数

3-core.transport.channel.speed.record

3.1首先作为单个channel的record数量限速参数

3.2和job中配置的job.setting.speed.record配合使用,可以提高taskGroup的并发个数

job.json

1-job.setting.speed.channel

1.1job.setting.speed.channel/core.container.taskGroup.channel  获取taskGroup并发的个数

2-job.setting.speed.byte

1.1job.setting.speed.byte/core.transport.channel.speed.byte)/core.container.taskGroup.channel 获取taskGroup并发的个数

3-job.setting.speed.record

1.1job.setting.speed.record/core.transport.channel.speed.record)/core.container.taskGroup.channel 获取taskGroup并发的个数

实例:

全局限速:

job.setting.speed.byte  1000  可以理解为整个任务所有任务的速度总和

core.transport.channel.speed.byte 100 单个channel限速

core.container.taskGroup.channel 5

此时如果切分后task的个数大于通过byte计算出的needChannelNumber,

可以获取到taskGroup的个数为10/5=2

每个taskGroup提交到固定大小为2的线程池执行任务,并且执行任务的并发数是5

主要阅读的代码路径:com.alibaba.datax.core.job.JobContainer

com.alibaba.datax.core.transport.channel.Channel

com.alibaba.datax.core.taskgroup.TaskGroupContainer

限速的逻辑:

* 1- 获取到core.transport.channel.speed.byte和core.transport.channel.speed.record两个配置的参数值

* 2-判断是否大于0,如果两个都没有配置,则直接返回

* 3-根据byte计算出当前的速度,和配置的byte做比较,计算出需要休眠的时间

* 4-根据record计算出当前的速度,和配置的record做比较,计算出需要休眠的时间

* 5-获取休眠时间较大的值进行sleep.

调整channelNumber的逻辑在之前的文章已经总结可以去查看。

后续发现问题,会更新文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值