路由策越优化:循环和LFU路由策略计数器自增无上限问题和首次路由压力集中在首台机器的问题修复;

This commit is contained in:
xueli.xue 2017-04-25 14:08:32 +08:00
parent 66e6dd9352
commit ee1f4e7a32
3 changed files with 9 additions and 5 deletions

View File

@ -23,6 +23,7 @@ XXL-JOB是一个轻量级分布式任务调度框架其核心设计目标是
- 16、任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
- 17、路由策略执行器集群部署时提供丰富的路由策略包括第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移
- 18、Rolling日志支持以Rolling方式实时查看执行器输出的日志信息实时监控任务进度
- 19、运行报表支持实时查看系统信息数据如任务数量、调度次数、执行器数量等以及调度报表如调度日期分布图调度成功分布图等
#### 1.3 发展
于2015年中我在github上创建XXL-JOB项目仓库并提交第一个commit随之进行系统结构设计UI选型交互设计……
@ -770,9 +771,11 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
- 4、权限增强校验采用动态登录TOKEN推荐接入内部SSO
- 5、数据库配置优化解决乱码问题
#### 6.12 版本 V1.6.2 特性Coding
- 1、任务报表:总任务数、总调度数、调度成功比例
#### 6.12 版本 V1.6.2 特性
- 1、运行报表:支持实时查看系统信息数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等
- 2、JobHandler支持自定义回调结果
- 3、资源路径包含空格或中文时资源文件无法加载时无法准确查看异常信息的问题处理。
- 4、路由策越优化循环和LFU路由策略计数器自增无上限问题和首次路由压力集中在首台机器的问题修复
#### TODO LIST
- 1、支持脚本JOB(源码或指定路径), 即shell/python/php等, 日志实时输出并支持在线监控定制JobHandler实现;

View File

@ -33,8 +33,8 @@ public class ExecutorRouteLFU extends ExecutorRouter {
jobLfuMap.put(jobId, lfuItemMap);
}
for (String address: addressList) {
if (!lfuItemMap.containsKey(address)) {
lfuItemMap.put(address, 0);
if (!lfuItemMap.containsKey(address) || lfuItemMap.get(address) >1000000 ) {
lfuItemMap.put(address, new Random().nextInt(addressList.size())); // 初始化时主动Random一次缓解首次压力
}
}

View File

@ -3,6 +3,7 @@ package com.xxl.job.admin.core.route.strategy;
import com.xxl.job.admin.core.route.ExecutorRouter;
import java.util.ArrayList;
import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
/**
@ -21,7 +22,7 @@ public class ExecutorRouteRound extends ExecutorRouter {
// count++
Integer count = routeCountEachJob.get(jobId);
count = (count==null)?0:++count;
count = (count==null || count>1000000)?(new Random().nextInt(100)):++count; // 初始化时主动Random一次缓解首次压力
routeCountEachJob.put(jobId, count);
return count;
}