• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:DataX-Channel数量是怎么确定的

java 搞代码 4年前 (2022-01-27) 96次浏览 已收录 0个评论

DataXML的channel数量,由bps限速、tps限速、间接设置三种形式。计算的步骤在split中,影响到jobReader和jobWriter的认为切分。

bps限速

总bps限速通过job.setting.speed.byte设置,在job.json中。

单个channel的bps值通过core.transport.channel.speed.byte设置,在core.json中,默认为-1。

如果设置了总bps限速,那单个channel的bps值不能为空,也不能为非负数。

channel的数量=总bps限速/单个channel的bps值。

比方总bps限速为100,单个channel的bps为10,那channel的数量就是100/10=10个。

tps限速

总tps限速通过job.setting.speed.record设置,在job.json中。

单个channel的tps值通过core.transport.channel.speed.record设置,在core.json中,默认为-1。

如果设置了总tps限速,那单个channel的tps值不能为空,也不能为非负数。

channel的数量=总tps限速/单个channel的tps值。

比方总tps限速为200,单个channel的tps为40,那channel的数量就是200/40=5个。

间接设置

通过job.setting.speed.channel间接设置。

比方这个值设置为5,那channel的数量就是5个。

优先级

如果以上三个都设置了,那以哪个为主呢?

如果bps限速和tps限速没有设置,那channel的数量默认都是Integer.MAX_VALUE。

如果bps限速和tps限速都设置了,那谁比拟小,以哪个为主。

比方下面的例子,tps的channel个数5小于bps的channel个数10,那channel的个数最终为5。

如果bps限速和tps限速只设置了一个,那以设置的那个为准,因为没设置的那个默认Integer.MAX_VALUE,必定大于设置的那个,所以取小的数就是设置的那个。

如果bps限速和tps限速都没有设置,那才读取间接设置的值,也就是说,间接设置的优先级最低。

如果都没有设置,那间接抛异样,也就是说,必须设置Job运行速度。

taskNumber

channel数量,除了通过下面计算的后果外,还须要再和taskNumber进行比照,取最小值。

比方taskNumber的值是2,下面最初的后果是5,那channel的数量就是会重置为2,这个步骤是在任务调度之前做的。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:DataX-Channel数量是怎么确定的

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址