PowerJob/others/guidance/content/docs/startup/1-server-startup.md

5.9 KiB
Raw Blame History

title weight
调度中心Server部署 1

环境要求

  • 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实现,对于能够直连数据库的应用,开发者仅需完成数据库的创建即运行SQLCREATE 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 扩展的报警服务Bean多值逗号分割默认为邮件报警
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

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

{{< /hint >}}

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中的axios.defaults.baseURL为服务器地址
  3. npm run build -> nginx config

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

初始化应用分组

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

WelcomePage

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