2020-05-21 20:36:05 +08:00

436 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="什么是容器? 介绍 OhMyScheduler的容器技术允许开发者开发独立于Worker项目之外Java处理器简单来说就是以Maven工程项目的维度去组织一堆Java文件开发者开发的众多脚本处理器进而兼具开发效率和可维护性。
用途举例 比如突然出现了某个数据库数据清理任务与主业务无关写进原本的项目工程中不太优雅这时候就可以单独创建一个用于数据操作的容器在里面完成处理器的开发通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。 比如常见的日志清理啊机器状态上报啊对于广大Java程序员来说也许并不是很会写shell脚本此时也可以借用agent&#43;容器技术利用Java完成各项原本需要通过脚本进行的操作。 (感觉例子举的都不是很好&hellip;这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)
生成容器模版 为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。 Group对应Maven的&lt;groupId&gt;标签,一般填入倒写的公司域名。 Artifact对于Maven的&lt;artifactId&gt;标签,填入代表该容器的唯一标示。 Name对应Maven的&lt;name&gt;标签,填入该容器名称。 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.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="容器" />
<meta property="og:description" content="什么是容器? 介绍 OhMyScheduler的容器技术允许开发者开发独立于Worker项目之外Java处理器简单来说就是以Maven工程项目的维度去组织一堆Java文件开发者开发的众多脚本处理器进而兼具开发效率和可维护性。
用途举例 比如突然出现了某个数据库数据清理任务与主业务无关写进原本的项目工程中不太优雅这时候就可以单独创建一个用于数据操作的容器在里面完成处理器的开发通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。 比如常见的日志清理啊机器状态上报啊对于广大Java程序员来说也许并不是很会写shell脚本此时也可以借用agent&#43;容器技术利用Java完成各项原本需要通过脚本进行的操作。 (感觉例子举的都不是很好&hellip;这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)
生成容器模版 为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。 Group对应Maven的&lt;groupId&gt;标签,一般填入倒写的公司域名。 Artifact对于Maven的&lt;artifactId&gt;标签,填入代表该容器的唯一标示。 Name对应Maven的&lt;name&gt;标签,填入该容器名称。 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." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://kfcfans.gitee.io/ohmyscheduler/docs/super/container/" />
<title>容器 | OhMyScheduler</title>
<link rel="manifest" href="/ohmyscheduler/manifest.json">
<link rel="icon" href="/ohmyscheduler/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/ohmyscheduler/book.min.e161f1fe2b283b6a43c29a52fde96e2387fade573e78efa6701d44c8499da76b.css" integrity="sha256-4WHx/isoO2pDwppS/eluI4f63lc&#43;eO&#43;mcB1EyEmdp2s=">
<script defer src="/ohmyscheduler/en.search.min.8c0739389d262fcac555a16288129e832618f93ba193658e88e4cfeb51a71475.js" integrity="sha256-jAc5OJ0mL8rFVaFiiBKegyYY&#43;Tuhk2WOiOTP61GnFHU="></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="/ohmyscheduler"><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="/ohmyscheduler/docs/startup/1-server-startup/" class="">调度中心Server部署</a>
</li>
<li>
<a href="/ohmyscheduler/docs/startup/2-worker-startup/" class="">执行器Worker初始化</a>
</li>
<li>
<a href="/ohmyscheduler/docs/startup/3-processor-develop/" class="">处理器开发</a>
</li>
<li>
<a href="/ohmyscheduler/docs/startup/4-console-guide/" class="">任务管理与在线运维</a>
</li>
</ul>
</li>
<li>
<span>高级特性</span>
<ul>
<li>
<a href="/ohmyscheduler/docs/super/container/" class="active">容器</a>
</li>
<li>
<a href="/ohmyscheduler/docs/super/openapi/" class="">OpenAPI</a>
</li>
</ul>
</li>
<li>
<span>版本与升级</span>
<ul>
<li>
<a href="/ohmyscheduler/docs/version/update/" class="">更新日志</a>
</li>
<li>
<a href="/ohmyscheduler/docs/version/migrate/" class="">迁移指南</a>
</li>
</ul>
</li>
<li>
<a href="/ohmyscheduler/docs/todo/" class="">开发计划</a>
</li>
<li>
<a href="/ohmyscheduler/docs/faq/" class="">FAQ</a>
</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="/ohmyscheduler/svg/menu.svg" class="book-icon" alt="Menu" />
</label>
<strong>容器</strong>
<label for="toc-control">
<img src="/ohmyscheduler/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>
<ul>
<li><a href="#介绍">介绍</a></li>
<li><a href="#用途举例">用途举例</a></li>
</ul>
</li>
<li><a href="#生成容器模版">生成容器模版</a></li>
<li><a href="#开发容器工程">开发容器工程</a></li>
<li><a href="#创建容器">创建容器</a></li>
<li><a href="#部署容器">部署容器</a></li>
</ul>
</nav>
</aside>
</header>
<article class="markdown"><h2 id="什么是容器">什么是容器?</h2>
<h3 id="介绍">介绍</h3>
<p>OhMyScheduler的容器技术允许开发者<strong>开发独立于Worker项目之外Java处理器</strong>简单来说就是以Maven工程项目的维度去组织一堆Java文件开发者开发的众多脚本处理器进而兼具开发效率和可维护性。</p>
<h3 id="用途举例">用途举例</h3>
<ul>
<li>比如突然出现了某个数据库数据清理任务与主业务无关写进原本的项目工程中不太优雅这时候就可以单独创建一个用于数据操作的容器在里面完成处理器的开发通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。</li>
<li>比如常见的日志清理啊机器状态上报啊对于广大Java程序员来说也许并不是很会写shell脚本此时也可以借用<strong>agent+容器</strong>技术利用Java完成各项原本需要通过脚本进行的操作。</li>
</ul>
<p>(感觉例子举的都不是很好&hellip;这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)</p>
<h2 id="生成容器模版">生成容器模版</h2>
<blockquote class="book-hint info">
为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。
</blockquote>
<p><img src="/ohmyscheduler/oms-console-container-template.png" alt="template" /></p>
<ul>
<li>Group对应Maven的<code>&lt;groupId&gt;</code>标签,一般填入倒写的公司域名。</li>
<li>Artifact对于Maven的<code>&lt;artifactId&gt;</code>标签,填入代表该容器的唯一标示。</li>
<li>Name对应Maven的<code>&lt;name&gt;</code>标签,填入该容器名称。</li>
<li>Package Name包名代表了的容器工程内部所使用的包名<strong>警告:包名一旦生成后,请勿更改!否则会导致运行时容器加载错误</strong>(当然,如有必须修改包名的需求,可以尝试替换<code>/resource</code>下以<code>oms-worker-container</code>开头的所有文件相关的值)。</li>
<li>Java Version容器工程的Java版本<strong>请务必与容器目标部署Worker平台的Java版本保持一致</strong></li>
</ul>
<h2 id="开发容器工程">开发容器工程</h2>
<p>完成容器模版创建后下载解压会得到如下结构的Java工程</p>
<pre><code>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
</code></pre><p>之后便可以愉快地在<strong>packageName</strong>下编写处理器代码啦~</p>
<p>需要示例代码?<a href="https://gitee.com/KFCFans/OhMyScheduler-Container-Template">客官这边请~</a></p>
<h2 id="创建容器">创建容器</h2>
<p>目前OhMyScheduler支持使用<strong>Git代码库</strong><strong>FatJar</strong>来创建容器。创建路径:<strong>容器运维 -&gt; 容器管理 -&gt; 新建容器</strong></p>
<blockquote class="book-hint warning">
当使用<strong>Git代码库</strong>创建容器时OhMyScheduler-Server需要完成代码库的下载、编译、构建和上传<strong>因此需要server运行环境包含可用的Git和Maven环境包括私服的访问权限</strong>
</blockquote>
<p>下图为使用<strong>Git代码库</strong>创建容器的示例,需要填入容器名称和代码库信息等参数:</p>
<p><img src="/ohmyscheduler/oms-console-container-newgit.png" alt="new-git-container" /></p>
<p>下图为使用<strong>FatJar</strong>创建容器的示例,需要上传可用的<strong>FatJar</strong>FatJar值包含了所有依赖的Jar文件</p>
<p><img src="/ohmyscheduler/oms-console-container-newfatjar.png" alt="new-git-container" /></p>
<h2 id="部署容器">部署容器</h2>
<blockquote class="book-hint info">
完成容器创建后,便可在容器管理界面查看已创建的容器,点击<strong>部署</strong>,可以看到详细的部署信息。
</blockquote>
<p><img src="/ohmyscheduler/oms-console-container-deploy.png" alt="new-git-container" /></p>
<blockquote class="book-hint info">
部署完成后,可以点击<strong>机器列表</strong>查看已部署该容器的机器信息。
</blockquote>
</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>
<ul>
<li><a href="#介绍">介绍</a></li>
<li><a href="#用途举例">用途举例</a></li>
</ul>
</li>
<li><a href="#生成容器模版">生成容器模版</a></li>
<li><a href="#开发容器工程">开发容器工程</a></li>
<li><a href="#创建容器">创建容器</a></li>
<li><a href="#部署容器">部署容器</a></li>
</ul>
</nav>
</aside>
</main>
</body>
</html>