471 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" dir=>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="环境要求 Open JDK 8&#43;
Apache Maven 3&#43;
任意 Spring Data Jpa 支持的关系型数据库MySQL/Oracle/MS SQLServer&hellip;
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-daily、oms-pre和oms-product。 调度服务器属于时间敏感应用强烈建议检查当前数据库所使用的时区信息show variables like &quot;%time_zone%&quot;;务必确保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.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="调度中心Server部署" />
<meta property="og:description" content="环境要求 Open JDK 8&#43;
Apache Maven 3&#43;
任意 Spring Data Jpa 支持的关系型数据库MySQL/Oracle/MS SQLServer&hellip;
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-daily、oms-pre和oms-product。 调度服务器属于时间敏感应用强烈建议检查当前数据库所使用的时区信息show variables like &quot;%time_zone%&quot;;务必确保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." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://kfcfans.gitee.io/docs/startup/1-server-startup/" />
<title>调度中心Server部署 | OhMyScheduler</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e161f1fe2b283b6a43c29a52fde96e2387fade573e78efa6701d44c8499da76b.css" integrity="sha256-4WHx/isoO2pDwppS/eluI4f63lc&#43;eO&#43;mcB1EyEmdp2s=">
<script defer src="/en.search.min.c80848d3c77260233d9a08502d528e5cb516bb11e5df300ef34c5507c61f37fd.js" integrity="sha256-yAhI08dyYCM9mghQLVKOXLUWuxHl3zAO80xVB8YfN/0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
</head>
<body dir=>
<input type="checkbox" class="hidden" id="menu-control" />
<main class="container flex">
<aside class="book-menu">
<nav>
<h2 class="book-brand">
<a href="/"><span>OhMyScheduler</span>
</a>
</h2>
<div class="book-search">
<input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/" />
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
<ul>
<li>
<span>快速开始</span>
<ul>
<li>
<a href="/docs/startup/1-server-startup/" class="active">调度中心Server部署</a>
</li>
<li>
<a href="/docs/startup/2-worker-startup/" class="">执行器Worker初始化</a>
</li>
<li>
<a href="/docs/startup/3-processor-develop/" class="">处理器开发</a>
</li>
<li>
<a href="/docs/startup/4-console-guide/" class="">任务管理与在线运维</a>
</li>
</ul>
</li>
<li>
<span>高级特性</span>
<ul>
<li>
<a href="/docs/super/container/" class="">容器</a>
</li>
<li>
<a href="/docs/super/openapi/" class="">OpenAPI</a>
</li>
</ul>
</li>
<li>
<span>更新日志</span>
<ul>
</ul>
</li>
</ul>
</nav>
<script>(function(){var menu=document.querySelector("aside.book-menu nav");addEventListener("beforeunload",function(event){localStorage.setItem("menu.scrollTop",menu.scrollTop);});menu.scrollTop=localStorage.getItem("menu.scrollTop");})();</script>
</aside>
<div class="book-page">
<header class="book-header">
<div class="flex align-center justify-between">
<label for="menu-control">
<img src="/svg/menu.svg" class="book-icon" alt="Menu" />
</label>
<strong>调度中心Server部署</strong>
<label for="toc-control">
<img src="/svg/toc.svg" class="book-icon" alt="Table of Contents" />
</label>
</div>
<input type="checkbox" class="hidden" id="toc-control" />
<aside class="hidden clearfix">
<nav id="TableOfContents">
<ul>
<li><a href="#环境要求">环境要求</a></li>
<li><a href="#初始化关系数据库">初始化关系数据库</a></li>
<li><a href="#部署调度服务器源码编译">部署调度服务器—源码编译</a></li>
<li><a href="#部署调度服务器docker">部署调度服务器—Docker</a></li>
<li><a href="#单独部署前端页面可选">单独部署前端页面(可选)</a></li>
<li><a href="#初始化应用分组">初始化应用分组</a></li>
</ul>
</nav>
</aside>
</header>
<article class="markdown"><h2 id="环境要求">环境要求</h2>
<ul>
<li>
<p>Open JDK 8+</p>
</li>
<li>
<p>Apache Maven 3+</p>
</li>
<li>
<p>任意 Spring Data Jpa 支持的关系型数据库MySQL/Oracle/MS SQLServer&hellip;</p>
</li>
<li>
<p>MongoDB可选任意支持GridFS的mongoDB版本4.2.6测试通过,其余未经测试,仅从理论角度分析可用),缺失该组件的情况下将无法使用在线日志、容器部署等扩展功能</p>
</li>
</ul>
<h2 id="初始化关系数据库">初始化关系数据库</h2>
<blockquote>
<p>调度服务器oh-my-scheduler-server的持久化层基于<code>Spring Boot Jpa</code>实现,对于能够直连数据库的应用,开发者<strong>仅需完成数据库的创建</strong>即运行SQLCREATE database if NOT EXISTS oms-product default character set utf8mb4 collate utf8mb4_unicode_ci;`</p>
</blockquote>
<ul>
<li>OhMyScheduler支持<strong>环境隔离</strong>提供日常daily、预发pre和线上product三套环境请根据使用的环境分别部署对应的数据库<code>oms-daily</code><code>oms-pre</code><code>oms-product</code></li>
<li>调度服务器属于<strong>时间敏感</strong>应用,强烈建议检查当前数据库所使用的时区信息(<code>show variables like &quot;%time_zone%&quot;;</code>),务必确保<code>time_zone</code>代表的时区与JDBC URL中<code>serverTimezone</code>字段代表的时区一致!</li>
<li>手动建表表SQL文件<a href="https://github.com/KFCFans/OhMyScheduler/blob/master/others/oms-sql.sql">下载地址</a></li>
</ul>
<h2 id="部署调度服务器源码编译">部署调度服务器—源码编译</h2>
<blockquote>
<p>调度服务器oh-my-scheduler-server支持任意的水平扩展即多实例集群部署仅需要在同一个局域网内启动新的服务器实例性能强劲无上限</p>
</blockquote>
<p>调度服务器oh-my-scheduler-server为了支持环境隔离分别采用了日常<code>application-daily.properties</code>)、预发(<code>application-pre.properties</code>)和线上(<code>application-product.properties</code>)三套配置文件,请根据实际需求进行修改,以下为配置文件详解。</p>
<table>
<thead>
<tr>
<th>配置项</th>
<th>含义</th>
<th>可选</th>
</tr>
</thead>
<tbody>
<tr>
<td>server.port</td>
<td>SpringBoot配置HTTP端口号默认7700</td>
<td></td>
</tr>
<tr>
<td>oms.akka.port</td>
<td>OhMyScheduler配置Akka端口号默认10086</td>
<td></td>
</tr>
<tr>
<td>oms.alarm.bean.names</td>
<td>OhMyScheduler报警服务Bean名称多值逗号分隔</td>
<td></td>
</tr>
<tr>
<td>spring.datasource.core.xxx</td>
<td>关系型数据库连接配置</td>
<td></td>
</tr>
<tr>
<td>spring.mail.xxx</td>
<td>邮件配置</td>
<td>是,未配置情况下将无法使用邮件报警功能</td>
</tr>
<tr>
<td>spring.data.mongodb.xxx</td>
<td>MongoDB连接配置</td>
<td>是,未配置情况下将无法使用在线日志功能</td>
</tr>
<tr>
<td>oms.log.retention.local</td>
<td>本地日志保留天数,负数代表永久保留</td>
<td></td>
</tr>
<tr>
<td>oms.log.retention.remote</td>
<td>远程日志保留天数,负数代表永久保留</td>
<td></td>
</tr>
<tr>
<td>oms.container.retention.local</td>
<td>扩展的报警服务Bean多值逗号分割默认为邮件报警</td>
<td></td>
</tr>
<tr>
<td>oms.container.retention.remote</td>
<td>远程容器保留天数,负数代表永久保留</td>
<td></td>
</tr>
</tbody>
</table>
<p>完成配置文件修改后,即可正式开始部署:</p>
<ul>
<li>打包:运行<code>mvn clean package -U -Pdev -DskipTests</code>构建调度中心Jar文件。</li>
<li>运行:运行<code>java -jar oms-server.jar --spring.profiles.active=product</code>,指定生效的配置文件。</li>
<li>验证:访问<code>http://ip:port</code>查看是否出现OhMyScheduler的欢迎页面。</li>
</ul>
<h2 id="部署调度服务器docker">部署调度服务器—Docker</h2>
<blockquote class="book-hint warning">
<strong>建议自己根据项目中的Dockerfile稍作修改制作自己的Docker镜像而不是直接使用官方镜像</strong>原因在于容器功能需要用到Git和Maven来编译代码库而公司内部往往都会搭建自己的私有仓库所以Git容器功能没办法正常运行<strong>官方镜像中的调度服务器不支持Git容器的部署</strong>)。
</blockquote>
<p><a href="https://hub.docker.com/r/tjqq/oms-server">Docker Hub地址</a></p>
<p>部署流程:</p>
<ol>
<li>下载镜像:<code>docker pull tjqq/oms-server</code></li>
<li>创建容器并运行所有SpringBoot的启动参数都可通过<code>-e Params=&quot;&quot;</code>传入)</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">docker run -d
-e PARAMS<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;--spring.profiles.active=product&#34;</span>
-p 7700:7700 -p 10086:10086 -p 27777:27777
--name oms-server
-v ~/docker/oms-server:/root/oms-server tjqq/oms-server:$version
</code></pre></div><h2 id="单独部署前端页面可选">单独部署前端页面(可选)</h2>
<blockquote>
<p>每一个oh-my-scheduler-server都自带了前端页面不过<del><del>Tomcat</del></del>为了完善的WebSocket支持现已切换到Undertow做Web服务器的性能就<del><del>呵呵了</del></del>(看评测好像还行,不过有追求的用户还是建议单独使用源码部署)~</p>
</blockquote>
<ol>
<li>源码克隆:<a href="https://github.com/KFCFans/OhMyScheduler-Console">OhMyScheduler-Console</a></li>
<li>替换地址:修改<code>main.js</code>中的<code>axios.defaults.baseURL</code>为服务器地址</li>
<li>npm run build -&gt; nginx config</li>
</ol>
<hr>
<p><strong>特别鸣谢</strong>:感谢<a href="https://github.com/fengnan0929">某知名上市电商公司前端开发者</a>对本项目的大力支持!</p>
<h2 id="初始化应用分组">初始化应用分组</h2>
<blockquote>
<p>每一个业务系统初次接入OhMyScheduler时都需要<strong>先完成应用注册</strong></p>
</blockquote>
<p><img src="/oms-console-welcome.png" alt="WelcomePage" /></p>
<ul>
<li>应用注册,用于进行业务分组:
<ul>
<li>应用名称:关键参数,一般填入接入的业务应用名称即可,需要保证唯一。<strong>同一个应用名称的所有worker视为一个集群被调度中心调度。</strong></li>
<li>应用描述:可选参数,便于记忆,无实际用处。</li>
</ul>
</li>
<li>用户注册,用于收集报警信息,用户注册录入个人信息后,即可通过报警配置进行通知。</li>
</ul>
</article>
<footer class="book-footer">
<div class="flex flex-wrap justify-between">
</div>
</footer>
<div class="book-comments">
</div>
<label for="menu-control" class="hidden book-menu-overlay"></label>
</div>
<aside class="book-toc">
<nav id="TableOfContents">
<ul>
<li><a href="#环境要求">环境要求</a></li>
<li><a href="#初始化关系数据库">初始化关系数据库</a></li>
<li><a href="#部署调度服务器源码编译">部署调度服务器—源码编译</a></li>
<li><a href="#部署调度服务器docker">部署调度服务器—Docker</a></li>
<li><a href="#单独部署前端页面可选">单独部署前端页面(可选)</a></li>
<li><a href="#初始化应用分组">初始化应用分组</a></li>
</ul>
</nav>
</aside>
</main>
</body>
</html>