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

... 等等,其实还有好多种,这里就不列举了

results matching ""

    No results matching ""