AutoConfigure
这里会优先讲一种AutoConfigure配置,主要为解决配置上的简单和多样化,参考SpringBoot的属性配置实现。
这个功能最主要的目的就是减少硬编码的编写,通过配置文件的方式来简化。最主要的功能就是将property映射成java对象。
譬如通过配置,然后生成先这个对象
@ConfigurationProperties(prefix = "lts.tasktracker")
public class TaskTrackerProperties {
/**
* 节点标识(可选)
*/
private String identity;
/**
* 集群名称
*/
private String clusterName;
/**
* zookeeper地址
*/
private String registryAddress;
/**
* 执行绑定的本地ip
*/
private String bindIp;
/**
* 额外参数配置
*/
private Map<String, String> configs = new HashMap<String, String>();
/**
* 节点Group
*/
private String nodeGroup;
/**
* FailStore数据存储路径
*/
private String dataPath;
/**
* 工作线程,默认64
*/
private int workThreads;
private Level bizLoggerLevel;
private DispatchRunner dispatchRunner;
private Class<?> jobRunnerClass;
//-------- Getter/Setter方法省略
public static class DispatchRunner {
/**
* 是否使用shardRunner
*/
private boolean enable = false;
/**
* shard的字段,默认taskId
*/
private String shardValue;
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public String getShardValue() {
return shardValue;
}
public void setShardValue(String shardValue) {
this.shardValue = shardValue;
}
}
}
prefix="lts.tasktracker" 表示配置文件中的lts.tasktracker开头的所有配置才会映射 那么配置文件即可这样写:
lts.tasktracker.cluster-name=test_cluster
lts.tasktracker.registry-address=zookeeper://127.0.0.1:2181
lts.tasktracker.work-threads=64
lts.tasktracker.node-group=test_trade_TaskTracker
lts.tasktracker.dispatch-runner.enable=true
lts.tasktracker.dispatch-runner.shard-value=taskId
lts.tasktracker.configs.job.fail.store=mapdb
也可以这样写 (大写)
LTS.TASKTRACKER.CLUSTER-NAME=test_cluster
LTS.TASKTRACKER.REGISTRY-ADDRESS=zookeeper://127.0.0.1:2181
LTS.TASKTRACKER.WORK-THREADS=64
LTS.TASKTRACKER.NODE-GROUP=test_trade_TaskTracker
LTS.TASKTRACKER.DISPATCH-RUNNER.ENABLE=true
LTS.TASKTRACKER.DISPATCH-RUNNER.SHARD-VALUE=taskId
LTS.TASKTRACKER.CONFIGS.job.fail.store=mapdb
也可以这样写(小写+下划线分隔符)
lts_tasktracker_cluster-name=test_cluster
lts_tasktracker_registry-address=zookeeper://127.0.0.1:2181
lts_tasktracker_work-threads=64
lts_tasktracker_node-group=test_trade_TaskTracker
lts_tasktracker_dispatch-runner_enable=true
lts_tasktracker_dispatch-runner_shard-value=taskId
lts_tasktracker_configs_job.fail.store=mapdb
也可以这样写(大写+下划线分隔符)
LTS_TASKTRACKER_CLUSTER-NAME=test_cluster
LTS_TASKTRACKER_REGISTRY-ADDRESS=zookeeper://127.0.0.1:2181
LTS_TASKTRACKER_WORK-THREADS=64
LTS_TASKTRACKER_NODE-GROUP=test_trade_TaskTracker
LTS_TASKTRACKER_DISPATCH-RUNNER_ENABLE=true
LTS_TASKTRACKER_DISPATCH-RUNNER_SHARD-VALUE=taskId
LTS_TASKTRACKER_CONFIGS_job.fail.store=mapdb
... 等等,其实还有好多种,这里就不列举了