apache / shardingsphere-elasticjob

Distributed scheduled job
Apache License 2.0
8.15k stars 3.29k forks source link

关于分片的问题 #663

Closed WangPei0316 closed 5 years ago

WangPei0316 commented 5 years ago

现在有多个job部署在3台服务器上,有几个job是分成3片自然是每台上都跑,若job只设定1片呢,应该如何去设定分片策略让多个分片为1的job平均分到每台上运行?

Leonidasz commented 5 years ago

这里是内置分片策略,http://elasticjob.io/docs/elastic-job-lite/02-guide/job-sharding-strategy/。 按照业务要求,也可以定制。

glasses1989 commented 5 years ago

目前默认情况下,你会尴尬的发现所有分片数量是1的job都集中到一台机器上去了,不能实现你所说的按照job维度平均的分配到集群下的机器。 策略设置为:RotateServerByNameJobShardingStrategy 会好点,job数量较多的情况下会相对均匀的分散在不同的机器上。 否则只能实现Strategy接口自己定制。

WangPei0316 commented 5 years ago

目前默认情况下,你会尴尬的发现所有分片数量是1的工作都集中到一台机器上去了,不能实现你所说的按照工作维度平均的分配到集群下的机器。 策略设置为:RotateServerByNameJobShardingStrategy会好点,工作数量较多的情况下会相对均匀的分散在不同的机器上。 否则只能实现战略接口自己定制。

现在是三台机器,主要是分在1和3了,2上面除了分片为3的几乎没有别的job在运行,我试试RotateServerByNameJobShardingStrategy会不会有改善,谢谢您的回复。

compilerduck commented 5 years ago

目前ElasticJob仅支持3种分片策略,如果都不满足,可以实现自定制的。先关闭这个issue了,如果有好的分片想法,可再开新的issue讨论。