调度中心(Server)部署

环境要求

  • Open JDK 8+

  • Apache Maven 3+

  • 任意 Spring Data Jpa 支持的关系型数据库(MySQL/Oracle/MS SQLServer…)

  • MongoDB(可选),任意支持GridFS的mongoDB版本(4.2.6测试通过,其余未经测试,仅从理论角度分析可用),缺失该组件的情况下将无法使用在线日志、容器部署等扩展功能

初始化关系数据库

调度服务器(oh-my-scheduler-server)的持久化层基于Spring Boot Jpa实现,对于能够直连数据库的应用,开发者仅需完成数据库的创建,即运行SQL:CREATE database if NOT EXISTS oms-product default character set utf8mb4 collate utf8mb4_unicode_ci;`

  • OhMyScheduler支持环境隔离,提供日常(daily)、预发(pre)和线上(product)三套环境,请根据使用的环境分别部署对应的数据库:oms-dailyoms-preoms-product
  • 调度服务器属于时间敏感应用,强烈建议检查当前数据库所使用的时区信息(show variables like "%time_zone%";),务必确保time_zone代表的时区与JDBC URL中serverTimezone字段代表的时区一致!
  • 手动建表SQL文件:下载地址

部署调度服务器—源码编译

调度服务器(oh-my-scheduler-server)支持任意的水平扩展,即多实例集群部署仅需要在同一个局域网内启动新的服务器实例,性能强劲无上限!

调度服务器(oh-my-scheduler-server)为了支持环境隔离,分别采用了日常(application-daily.properties)、预发(application-pre.properties)和线上(application-product.properties)三套配置文件,请根据实际需求进行修改,以下为配置文件详解。

配置项 含义 可选
server.port SpringBoot配置,HTTP端口号,默认7700
oms.akka.port OhMyScheduler配置,Akka端口号,默认10086
oms.alarm.bean.names OhMyScheduler报警服务Bean名称,多值逗号分隔
spring.datasource.core.xxx 关系型数据库连接配置
spring.mail.xxx 邮件配置 是,未配置情况下将无法使用邮件报警功能
spring.data.mongodb.xxx MongoDB连接配置 是,未配置情况下将无法使用在线日志功能
oms.log.retention.local 本地日志保留天数,负数代表永久保留
oms.log.retention.remote 远程日志保留天数,负数代表永久保留
oms.container.retention.local 本地容器保留天数,负数代表永久保留
oms.container.retention.remote 远程容器保留天数,负数代表永久保留

完成配置文件修改后,即可正式开始部署:

  • 打包:运行mvn clean package -U -Pdev -DskipTests,构建调度中心Jar文件。
  • 运行:运行java -jar oms-server.jar --spring.profiles.active=product,指定生效的配置文件。
  • 验证:访问http://ip:port查看是否出现OhMyScheduler的欢迎页面。

部署调度服务器—Docker

建议自己根据项目中的Dockerfile稍作修改,制作自己的Docker镜像,而不是直接使用官方镜像!原因在于:容器功能需要用到Git和Maven来编译代码库,而公司内部往往都会搭建自己的私有仓库,所以Git容器功能没办法正常运行(即,官方镜像中的调度服务器不支持Git容器的部署)。

Docker Hub地址

部署流程:

  1. 下载镜像:docker pull tjqq/oms-server
  2. 创建容器并运行(所有SpringBoot的启动参数都可通过-e Params=""传入)
docker run -d 
-e PARAMS="--spring.profiles.active=product" 
-p 7700:7700 -p 10086:10086 -p 27777:27777 
--name oms-server 
-v ~/docker/oms-server:/root/oms-server tjqq/oms-server:$version

单独部署前端页面(可选)

每一个oh-my-scheduler-server都自带了前端页面,不过Tomcat(为了完善的WebSocket支持,现已切换到Undertow)做Web服务器的性能就呵呵了(看评测好像还行,不过有追求的用户还是建议单独使用源码部署)~

  1. 源码克隆:OhMyScheduler-Console
  2. 替换地址:修改main.js中的baseURL为服务器地址
  3. npm run build
  4. 将构建结果dist文件夹拷入Nginx静态目录下,修改配置文件,重启,enjoy~

特别鸣谢:感谢某知名上市电商公司前端开发者对本项目的大力支持!

初始化应用分组

每一个业务系统初次接入OhMyScheduler时,都需要先完成应用注册

WelcomePage

  • 应用注册,用于进行业务分组:
    • 应用名称:关键参数,一般填入接入的业务应用名称即可,需要保证唯一。同一个应用名称的所有worker视为一个集群被调度中心调度。
    • 应用描述:可选参数,便于记忆,无实际用处。
  • 用户注册,用于收集报警信息,用户注册录入个人信息后,即可通过报警配置进行通知。
上一页 下一页