分布式任务调度与计算框架:PowerJob 高级特性-容器 03

容器

什么是容器

介绍

PowerJob 的容器技术允许开发者开发独立于 Worker 项目之外 Java 处理器,简单来说,就是以 Maven 工程项目的维度去组织一堆 Java 文件(开发者开发的众多脚本处理器),进而兼具开发效率和可维护性。

该容器为 JVM 级容器,而不是操作系统级容器(Docker)。

用途介绍

  • 比如,突然出现了某个数据库数据清理任务,与主业务无关,写进原本的项目工程中不太优雅,这时候就可以单独创建一个用于数据操作的容器,在里面完成处理器的开发,通过 PowerJob 的容器部署技术在 Worker 集群上被加载执行。
  • 比如,常见的日志清理啊,机器状态上报啊,对于广大 Java 程序员来说,也许并不是很会写 shell 脚本,此时也可以借用 agent+容器 技术,利用 Java 完成各项原本需要通过脚本进行的操作。

生成容器摸版

为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。

分布式任务调度与计算框架:PowerJob 高级特性-容器 03_第1张图片

  • Group:对应 Maven 的 标签,一般填入倒写的公司域名。
  • Artifact:对应 Maven 的 标签,填入代表该容器的唯一标示。
  • Name:对应 Maven 的 标签,填入该容器名称。
  • Package Name:包名,代表了的容器工程内部所使用的包名,警告:包名一旦生成后,请勿更改!否则会导致运行时容器加载错误(当然,如有必须修改包名的需求,可以尝试替换 /resource 下以 oms-worker-container 开头的所有文件相关的值)。
  • Java Version:容器工程的 Java 版本,请务必与容器目标部署 Worker 平台的 Java 版本保持一致

开发容器工程

完成容器模版创建后,下载,解压,会得到如下结构的 Java 工程:

oms-template-origin // 工程名称,可以自由更改
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── cn
    │   │       └── edu
    │   │           └── zju
    │   │               └── tjq
    │   │                   └── container
    │   │                       └── samples // 所有处理器代码必须位于该目录下,其余类随意
    │   └── resources // 严禁随意更改以下两个配置文件(允许添加,不允许更改现有内容)
    │       ├── oms-worker-container-spring-context.xml
    │       └── oms-worker-container.properties
    └── test
        └── java

之后便可以愉快地在**指定包(packageName 对应路径)**下编写处理器代码啦~

注:开发容器工程前,请检查 pom.xml 文件,确保 powerjob.worker.version 与实际部署应用的 worker 版本一致!

创建容器

目前,PowerJob 支持使用 Git 代码库FatJar 来创建容器。创建路径:容器运维 -> 容器管理 -> 新建容器

当使用 Git 代码库创建容器时,powerjob-server 需要完成代码库的下载、编译、构建和上传,因此需要其运行环境包含可用的 Git 和 Maven 环境(包括私服的访问权限)

下图为使用Git代码库创建容器的示例,需要填入容器名称和代码库信息等参数:

分布式任务调度与计算框架:PowerJob 高级特性-容器 03_第2张图片

下图为使用 FatJar 创建容器的示例,需要上传可用的 FatJar(注:FatJar 内必须包含了所有依赖的 Jar 文件)

分布式任务调度与计算框架:PowerJob 高级特性-容器 03_第3张图片

部署容器

每次创建和修改容器后,都需要进行一次部署(相当于发布该容器的最新版本),使 powerjob-worker 动态加载容器内的 Processor。点击部署,可以看到详细的部署信息。点击部署,可以看到详细的部署信息。
分布式任务调度与计算框架:PowerJob 高级特性-容器 03_第4张图片
部署完成后,可以点击机器列表查看已部署该容器的机器信息。

你可能感兴趣的:(PowerJob分布式任务调度,Java,后端,java,PowerJob,分布式,分布式任务调度器)