LTS:简单使用

1.启动JobTracker。./jobtracker.sh zoo start
2.启动LTS-Admin。sh lts-admin.sh start
3.实用后台添加jobclient
   在节点组管理中---添加节点---节点类型(JOB_CLIENT)
4.添加任务
   提交节点组 选择3中配置的jobclient节点
   执行节点组 选择 自定义的 tasktracker 组
5.保存
6.此时会根据配置的[任务类型]调用自定义的tasktracker
代码如下:
====================================
pom.xml:
====================================
<!-- Spring Boot 启动父依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

    <properties>
        <jedis.version>2.7.3</jedis.version>
        <fastjson.version>1.2.7</fastjson.version>
        <leveldbjni.version>1.8</leveldbjni.version>
        <curator.version>2.9.1</curator.version>
        <zkclient.version>0.1</zkclient.version>
        <zk.version>3.4.5</zk.version>
        <mongo.driver.version>3.0.2</mongo.driver.version>
        <morphia.version>1.0.0-rc1</morphia.version>
        <junit.version>4.11</junit.version>
        <netty.version>4.0.20.Final</netty.version>
        <slf4j.version>1.7.5</slf4j.version>
        <log4j.version>1.2.16</log4j.version>
        <dbutils.version>1.6</dbutils.version>
        <druid.version>1.0.14</druid.version>
        <mysql.version>5.1.26</mysql.version>
        <sleepycat.version>5.0.73</sleepycat.version>
        <rocksdbjni.version>3.10.1</rocksdbjni.version>
        <h2.version>1.4.189</h2.version>
        <springframework.version>4.2.5.RELEASE</springframework.version>
        <mina.version>2.0.9</mina.version>
        <hessian.version>4.0.38</hessian.version>
        <mapdb.version>2.0-beta10</mapdb.version>
        <groovy.version>2.4.5</groovy.version>
        <!--<jackson.version>2.6.3</jackson.version>-->
        <aspectj.version>1.7.2</aspectj.version>
        <javax.mail.version>1.5.4</javax.mail.version>
        <spring.boot.version>1.3.3.RELEASE</spring.boot.version>
        <lts.version>1.7.0</lts.version>
        <quartz.version>2.2.2</quartz.version>
        <javassist.version>3.20.0-GA</javassist.version>
    </properties>

    <dependencies>

        <!-- Spring Boot Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot TestJobClient 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>com.github.ltsopensource</groupId>
            <artifactId>lts-core</artifactId>
            <version>${lts.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>${zkclient.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>${curator.version}</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sleepycat</groupId>
            <artifactId>je</artifactId>
            <version>${sleepycat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.rocksdb</groupId>
            <artifactId>rocksdbjni</artifactId>
            <version>${rocksdbjni.version}</version>
        </dependency>
        <dependency>
            <groupId>org.fusesource.leveldbjni</groupId>
            <artifactId>leveldbjni-all</artifactId>
            <version>${leveldbjni.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>${mina.version}</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>${netty.version}</version>
        </dependency>
        <dependency>
            <groupId>com.caucho</groupId>
            <artifactId>hessian</artifactId>
            <version>${hessian.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mapdb</groupId>
            <artifactId>mapdb</artifactId>
            <version>${mapdb.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb.morphia</groupId>
            <artifactId>morphia</artifactId>
            <version>${morphia.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>${mongo.driver.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>${quartz.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>${javassist.version}</version>
        </dependency>

        <dependency>
            <groupId>com.github.ltsopensource</groupId>
            <artifactId>lts-tasktracker</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.ltsopensource</groupId>
            <artifactId>lts-jobclient</artifactId>
            <version>1.7.0</version>
        </dependency>

    </dependencies>
====================================
java代码:
====================================
public class TestTaskTracker {

    public static void main(String[] args) {
        TaskTracker taskTracker = new TaskTracker();
        taskTracker.setJobRunnerClass(MyJobRunner.class);
        taskTracker.setRegistryAddress("zookeeper://127.0.0.1:2181");
        taskTracker.setNodeGroup("test_tracker_group111");
        taskTracker.setClusterName("test_cluster");
        taskTracker.setWorkThreads(20);
        taskTracker.start();
    }
}

public class MyJobRunner implements JobRunner {
    @Override
    public Result run(JobContext jobContext) throws Throwable {
        try {
            // TODO 业务逻辑
            // 会发送到 LTS (JobTracker上)
            jobContext.getBizLogger().info("测试,业务日志啊啊啊啊啊");

        } catch (Exception e) {
            return new Result(Action.EXECUTE_FAILED, e.getMessage());
        }
        return new Result(Action.EXECUTE_SUCCESS, "执行成功了,哈哈");
    }
}

猜你喜欢

转载自samson870830.iteye.com/blog/2387565
今日推荐