Open ExploreHeart opened 4 months ago
https://github.com/apache/shardingsphere-elasticjob/blob/d94ce276d9763509cf86246f809d2e714e8500a5/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/sharding/ShardingService.java#L129
非主节点:!leaderService.isLeaderUntilBlock() ;
存在需要分片标识或者主节点插入正在分片标识:(jobNodeStorage.isJobNodeExisted(ShardingNode.NECESSARY) || jobNodeStorage.isJobNodeExisted(ShardingNode.PROCESSING))
主分片完成后,分片标识被重新插入(实例上线或者下线);
触发这个场景后,从节点将一直循环请求ZK到下一轮任务调度;
当前逻辑是100ms执行上述判断逻辑,对ZK请求4次,单个任务对ZK请求=40次/s;
https://github.com/apache/shardingsphere-elasticjob/blob/d94ce276d9763509cf86246f809d2e714e8500a5/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/sharding/ShardingService.java#L129
当前判断条件
非主节点:!leaderService.isLeaderUntilBlock() ;
存在需要分片标识或者主节点插入正在分片标识:(jobNodeStorage.isJobNodeExisted(ShardingNode.NECESSARY) || jobNodeStorage.isJobNodeExisted(ShardingNode.PROCESSING))
触发死循环条件
主分片完成后,分片标识被重新插入(实例上线或者下线);
触发这个场景后,从节点将一直循环请求ZK到下一轮任务调度;
当前逻辑是100ms执行上述判断逻辑,对ZK请求4次,单个任务对ZK请求=40次/s;
优化思路