Files
agent-skills/skills/g3fo-docs/references/middleware/powerjob/deploy.md
T
ken.li 3525aee49e feat: 新增中间件文档和内部通讯技能
新增中间件相关文档包括 RocketMQ、Nacos、PowerJob 的部署指南和故障分析文档,完善 Keepalived 和 MySQL 的文档内容。新增内部通讯技能模板和示例文件,包括 3P更新、公司通讯、FAQ回答等格式指南。优化服务文档结构,补充 FIX 引擎高可用架构说明。新增中间件综合指南,详细说明高可用部署方案和灾备转换原理。

新增 RocketMQ 5.3.2 集群部署文档,包含 Controller 模式详解和详细配置说明。新增 Nacos 和 PowerJob 部署文档,补充服务依赖和关键配置。更新 MySQL 故障分析文档,优化复制冲突解决流程。新增内部通讯技能模板文件,规范公司内部通讯格式。

docs: 补充服务文档和中间件 TODO 列表

新增 g3fo-exchange-fix-engine-service 服务文档,详细说明服务职责和关键配置。新增中间件 TODO 列表,跟踪待补充的文档内容。更新 Keepalived 部署文档,新增主库抢占前置检查脚本和配置说明。优化中间件文档结构,补充常见问题和性能优化建议。

style: 统一文档格式和代码块样式

统一所有文档的代码块格式和标题层级。优化表格显示样式,增强可读性。规范环境变量和配置项的显示方式。调整文档结构,确保逻辑清晰。修复部分拼写错误和格式问题。

chore: 新增 LICENSE 文件

新增内部通讯技能的 Apache 2.0 LICENSE 文件。补充文档版权信息。更新文件头部的元数据描述。规范文件命名和目录结构。
2026-01-23 17:15:16 +08:00

7.2 KiB
Raw Blame History

PowerJob 部署配置

PowerJob 用途说明

PowerJob 是一个分布式任务调度与计算框架,专注于解决大规模任务调度问题,提供丰富的任务类型和强大的调度能力。在项目中,PowerJob 主要用于以下场景:

1. 分布式任务调度

  • 定时任务调度:支持 cron 表达式、固定延迟、固定频率等多种调度方式
  • 任务分片:将大任务拆分为多个小任务,并行执行,提高处理效率
  • 任务依赖:支持任务间的依赖关系配置,实现复杂的工作流
  • 高可用设计:通过集群部署确保任务调度的可靠性,避免单点故障

2. 多样化任务类型

  • HTTP 任务:直接调用 HTTP 接口执行任务
  • Java 任务:执行 Java 代码,支持动态加载和执行
  • Shell 任务:执行 Shell 脚本
  • Python 任务:执行 Python 脚本
  • MapReduce 任务:支持大数据处理场景

3. 任务管理与监控

  • 可视化管理界面:提供 Web 控制台,方便查看和管理任务
  • 实时监控:实时监控任务执行状态、日志和结果
  • 告警机制:支持任务失败、超时等告警通知
  • 历史记录:保存任务执行历史,便于追溯和分析

Docker Compose 配置

powerjob-server:
    image: powerjob/powerjob-server:v5.1.2
    container_name: powerjob-server
    restart: always
    depends_on:
      - mysql
    deploy:
      resources:
        limits:
          memory: 1536M
      replicas: 1
      placement:
        constraints:
          - node.role == manager
    networks:
      - my-net
    ports:
      - 7700:7700
      - 10086:10086
      - 10010:10010
      - 10077:10077
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - /data/powerjob/data:/root/powerjob/server
      - /data/powerjob/application.properties:/application.properties
      - /data/powerjob/lib:/app/lib
    environment:
      - JVMOPTIONS=-Dpowerjob.network.external.address=192.168.3.230 -Dpowerjob.network.local.address=0.0.0.0 -javaagent:/app/lib/jasypt-agent.jar

应用配置文件 (/data/powerjob/application.properties)

spring.datasource.core.jdbc-url=jdbc:mysql://192.168.3.233:3306/powerjob?useUnicode=true&characterEncoding=UTF-8
spring.datasource.core.username=root
spring.datasource.core.password=ENC(RjBbbZtMkQ1XoESFu6Wo7XeC29GcDkeIiIq92ONWx2odVz9NAmClnxjRXJwq1dNI)
#spring.datasource.core.password=afe123456
jasypt.encryptor.password=1234
#jasypt.encryptor.algorithm=PBEWITHHMACSHA512ANDAES_256
#jasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator
oms.mongodb.enable=false
spring.profiles.active=product

Spring Boot 配置连接集群

powerjob:
  worker:
    app-name: ${app.service-name}
    protocol: http
    server-address: 192.168.3.230:7700,192.168.3.200:7700

部署说明

1. 端口说明

端口 作用 说明
7700 PowerJob 服务器的 Web 服务端口 用于访问 Web 控制台,接收 Worker 注册和任务请求,必须打开
10086 Akka 端口 PowerJob 配置的 Akka 端口,用于内部通信
10010 多语言客户端 HTTP 端口 PowerJob 配置的多语言客户端 HTTP 端口
10077 MU 协议端口 PowerJob 配置的 MU 协议端口,可选打开

端口配置原则

  1. 最省事的方法:所有端口(7700 + 10086 + 10010 + 10077)全打开

  2. 精细化控制原则:

    • 对于任何用户,7700 端口必须打开,这是调度服务器的 Web 服务端口
    • oms.协议.port 的端口按需打开,考虑 server-server 和 server-worker 通讯场景:
      • server-server 默认通过 HTTP 协议交互(由 oms.transporter.main.protocol 控制),必须打开 HTTP 10010 端口
      • server-worker 部分通过 HTTP,部分通过 AKKA,需要打开 AKKA 的 10086 端口

主要配置项说明

配置项 含义 是否必填
server.port SpringBoot 配置,HTTP 端口号,默认 7700 否,且不建议更改
oms.transporter.active.protocols server 需要激活的通讯协议,建议激活全部支持的协议 否,且不建议更改
oms.transporter.main.protocol 主要通讯协议,用于 server 与 server 之间的通讯 否
oms.akka.port PowerJob 配置,Akka 端口号,默认 10086 否,且不建议更改
oms.http.port PowerJob 配置,多语言客户端 HTTP 端口号,默认 10010 否,且不建议更改
oms.mu.port PowerJob 配置,MU 协议端口号,默认 10077 是
oms.table-prefix 自定义数据库表名前缀 是
spring.datasource.core.xxx 关系型数据库连接配置 否
spring.mail.xxx 邮件配置 是,未配置情况下将无法使用邮件报警功能
oms.container.retention.local 本地容器保留天数,负数代表永久保留 是
oms.container.retention.remote 远程容器保留天数,负数代表永久保留 是
oms.instanceinfo.retention 任务实例和工作流实例信息的保留天数 是,推荐使用默认配置,生产环境保留 7 天
oms.auth.initiliaze.admin.password 系统初始化时默认创建的超级管理员密码 是,默认值 powerjob_admin,无此配置时,随机生成密码
oms.auth.dingtalk.* 钉钉用户账号体系相关配置内容 否,仅启用钉钉账号登录体系时需要配置

2. 目录准备

在部署 PowerJob 之前,需要创建以下目录:

mkdir -p /data/powerjob/{data,lib}

3. 环境变量说明

  • JVMOPTIONS:
    • -Dpowerjob.network.external.address:PowerJob 服务器的外部访问地址,用于 Worker 连接
    • -Dpowerjob.network.local.address:PowerJob 服务器的本地绑定地址
    • -javaagent:/app/lib/jasypt-agent.jar:Jasypt 加密代理,用于解密配置文件中的敏感信息

4. 配置文件说明

  • spring.datasource.core.jdbc-url:MySQL 数据库连接 URL
  • spring.datasource.core.username:MySQL 数据库用户名
  • spring.datasource.core.password:MySQL 数据库密码(支持 Jasypt 加密)
  • jasypt.encryptor.password:Jasypt 加密密钥
  • oms.mongodb.enable:是否启用 MongoDB(用于存储任务日志,默认 false)
  • spring.profiles.active:Spring Boot 激活的配置文件

5. 注意事项

  1. 数据库配置:

    • 确保 MySQL 数据库已创建,并且用户具有足够的权限
    • 首次启动时,PowerJob 会自动创建所需的表结构
  2. 集群部署:

    • 可以部署多个 PowerJob 服务器实例,通过负载均衡提高可用性
    • 所有实例共享同一个 MySQL 数据库
    • Worker 配置中指定多个服务器地址,实现高可用连接
  3. 安全配置:

    • 生产环境中建议使用 Jasypt 加密数据库密码等敏感信息
    • 调整 Jasypt 加密密钥,避免使用默认密钥
  4. 资源限制:

    • 根据实际任务量调整内存限制(当前配置为 1536M)
    • 监控服务器资源使用情况,及时调整配置

相关文档