0
点赞
收藏
分享

微信扫一扫

Spring Cloud Data Flow参考指南(五)

Spring Cloud Data Flow参考指南(五)_应用程序

32.2. 启用调度

默认情况下,Spring 云数据流会禁用调度功能。若要启用计划功能,请将以下功能属性设置为:​​true​

  • ​spring.cloud.dataflow.features.schedules-enabled​
  • ​spring.cloud.dataflow.features.tasks-enabled​

32.3. 计划的生命周期

计划的生命周期由三个部分组成:

  • 计划任务执行
  • 删除计划
  • 上市时间表

32.3.1. 安排任务执行

您可以通过以下方式计划任务执行:

  • 春云数据流外壳
  • 春季云数据流仪表板
  • 春天 云 数据流 RESTful API

32.3.2. 调度任务

要使用 shell 计划任务,请使用命令创建计划,如以下示例所示:​​task schedule create​

dataflow:>task schedule create --definitionName mytask --name mytaskschedule --expression '*/1 * * * *'
Created schedule 'mytaskschedule'

在前面的示例中,我们为调用的任务定义创建了一个计划。此计划每分钟启动一次。​​mytaskschedule​​​​mytask​​​​mytask​

如果使用Cloud Foundry,上面的表达式将是:这是因为Cloud Foundry使用Quartzexpression格式。​​cron​​​​*/1 * ? * *​​​​cron​

计划名称的最大长度

计划名称的最大字符长度取决于平台。

Table 3. Maximum Schedule Name Character Length by Platform

Kubernetes

云铸造厂

当地

52

63

不适用

32.3.3. 删除时间表

您可以使用以下命令删除计划:

  • 春云数据流外壳
  • 春季云数据流仪表板
  • 春天 云 数据流 RESTful API

若要使用 shell 删除任务计划,请使用命令,如以下示例所示:​​task schedule destroy​

dataflow:>task schedule destroy --name mytaskschedule
Deleted task schedule 'mytaskschedule'

32.3.4. 上市时间表

您可以使用以下命令查看可用计划:

  • 春云数据流外壳
  • 春季云数据流仪表板
  • 春天 云 数据流 RESTful API

若要从 shell 查看计划,请使用命令,如以下示例所示:​​task schedule list​

dataflow:>task schedule list
╔══════════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠══════════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║mytaskschedule │mytask │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚══════════════════════════╧════════════════════╧════════════════════════════════════════════════════╝

有关使用 Spring Cloud 数据流 UI 创建、删除和列出计划的说明,请参阅此处。

33. 持续部署

随着任务应用程序的发展,您希望将更新导入生产环境。本节介绍了 Spring Cloud Data Flow 提供的有关更新任务应用程序的功能。

注册任务应用程序时(请参阅注册任务应用程序),将有一个版本与之关联。一个任务应用程序可以有多个与之关联的版本,其中一个版本被选为默认版本。下图说明了具有多个关联版本的应用程序(请参阅时间戳条目)。

Spring Cloud Data Flow参考指南(五)_应用程序_02

通过注册多个具有相同名称和坐标的应用程序(版本除外)来管理应用程序的版本。例如,如果要使用以下值注册应用程序,则会将一个应用程序注册到两个版本(2.1.0.RELEASE 和 2.1.1.RELEASE):

  • 应用 1
  • 名字:timestamp
  • 类型:task
  • URI:maven://org.springframework.cloud.task.app:timestamp-task:2.1.0.RELEASE
  • 应用 2
  • 名字:timestamp
  • 类型:task
  • URI:maven://org.springframework.cloud.task.app:timestamp-task:2.1.1.RELEASE

除了有多个版本之外,Spring Cloud Data Flow 还需要知道在下次启动时运行哪个版本。这是通过将版本设置为默认版本来指示的。任务应用程序的任何版本配置为默认版本都是要在下一个启动请求上运行的版本。您可以在 UI 中看到哪个版本是默认版本,如下图所示:

Spring Cloud Data Flow参考指南(五)_Cloud_03

33.1. 任务启动生命周期

在以前版本的Spring Cloud Data Flow中,当收到启动任务的请求时,Spring Cloud Data Flow将部署应用程序(如果需要)并运行它。如果应用程序在不需要每次都部署应用程序的平台上运行(例如 CloudFoundry),则使用以前部署的应用程序。此流程在 2.3 中已更改。下图显示了现在收到任务启动请求时发生的情况:

Spring Cloud Data Flow参考指南(五)_选项卡_04

上图中需要考虑三个主要流程。首次启动或不更改即可启动。另外两个在有更改但应用程序当前未启动时启动,并在有更改且应用程序正在运行时启动。我们先看一下没有变化的流程。

33.1.1. 启动没有更改的任务
  1. 启动请求进入数据流。数据流确定不需要升级,因为没有任何更改(自上次执行以来未更改任何属性、部署属性或版本)。
  2. 在缓存已部署项目的平台上(在撰写本文时为 CloudFoundry),数据流会检查应用程序以前是否已部署。
  3. 如果需要部署应用程序,数据流将部署任务应用程序。
  4. 数据流启动应用程序。

此流是默认行为,如果没有任何更改,则每次请求传入时都会发生。请注意,这是数据流始终用于启动任务的同一流。

33.1.2. 使用当前未运行的更改启动任务

启动任务时要考虑的第二个流程是任务未运行,但任何任务应用程序版本、应用程序属性或部署属性发生更改。在这种情况下,将执行以:

  1. 启动请求进入数据流。数据流确定是否需要升级,因为任务应用程序版本、应用程序属性或部署属性发生了更改。
  2. 数据流检查任务定义的另一个实例当前是否正在运行。
  3. 如果当前没有正在运行的任务定义的其他实例,则会删除旧部署。
  4. 在缓存已部署项目的平台上(在撰写本文时为 CloudFoundry),数据流会检查应用程序以前是否已部署(此检查评估此流,因为旧部署已删除)。false
  5. 数据流使用更新的值(新应用程序版本、新的合并属性和新的合并部署属性)执行任务应用程序的部署。
  6. 数据流启动应用程序。

此流程从根本上实现了 Spring Cloud 数据流的持续部署。

33.1.3. 在另一个实例运行时启动包含更改的任务

最后一个主要流程是当启动请求来到 Spring Cloud 数据流进行升级但任务定义当前正在运行时。在这种情况下,由于需要删除当前应用程序,启动将被阻止。在某些平台上(在撰写本文时为 CloudFoundry),删除应用程序会导致所有当前正在运行的应用程序关闭。此功能可防止这种情况发生。以下过程描述了当一个任务在另一个实例运行时发生更改时会发生什么情况:

  1. 启动请求进入数据流。数据流确定是否需要升级,因为任务应用程序版本、应用程序属性或部署属性发生了更改。
  2. 数据流检查任务定义的另一个实例当前是否正在运行。
  3. 数据流阻止启动,因为任务定义的其他实例正在运行。

由于需要删除任何当前正在运行的任务,任何需要升级请求时正在运行的任务定义的启动都将被阻止运行。

任务开发人员指南

有关如何在本地计算机上创建、测试和运行 Spring Cloud Task 应用程序的更多信息,请参阅微型站点的Batch 开发人员部分。

任务监控

有关如何监视作为任务的一部分部署的应用程序的详细信息,请参阅微型站点的任务监视指南。

挡泥板

本节介绍如何使用春云数据流的仪表盘。

34. 简介

Spring Cloud Data Flow 提供了一个基于浏览器的 GUI,称为仪表板来管理以下信息:

  • 应用:“应用”选项卡列出了所有可用的应用程序,并提供用于注册和注销它们的控件。
  • 运行时:“运行时”选项卡提供所有正在运行的应用程序的列表。
  • 流:“流”选项卡允许您列出、设计、创建、部署和销毁定义。
  • 任务:“任务”选项卡允许您列出、创建、启动、计划和销毁任务定义。
  • 作业:“作业”选项卡允许您执行与批处理作业相关的功能。

启动 Spring Cloud Data Flow 后,仪表板位于:

​<host>:<port>/dashboard​

例如,如果 Spring Cloud Data Flow 在本地运行,则仪表板位于。​​localhost:9393/dashboard​

如果已启用 HTTPS,则仪表板位于。 如果您已启用安全性,则可以在以下位置找到登录表单。​​localhost:9393/dashboard​​​​localhost:9393/dashboard/#/login​

默认仪表板服务器端口为。​​9393​

下图显示了 Spring 云数据流仪表板的打开页面:

35. 应用程序

仪表板的“应用程序”选项卡列出了所有可用的应用程序,并提供用于注册和注销它们的控件(如果适用)。 您可以使用“批量导入应用程序”操作一次导入多个应用程序。

35.1. 批量导入应用程序

可以通过“应用程序”页面上提供的多种方式导入应用程序。 对于大容量导入,应用程序定义应以属性样式表示,如下所示:

<type>.<name> = <coordinates>

以下示例显示了典型的应用程序定义:

task.timestamp=maven://org.springframework.cloud.task.app:timestamp-task:1.2.0.RELEASE
processor.transform=maven://org.springframework.cloud.stream.app:transform-processor-rabbit:1.2.0.RELEASE

在“从 HTTP URI 位置导入应用程序坐标”部分中,可以指定指向存储在其他位置的属性文件的 URI,该文件应包含上一示例中所示格式的属性。 或者,通过使用“从属性文件导入应用程序坐标”部分中的“应用作为属性”文本框,可以直接列出每个属性字符串。最后,如果属性存储在本地文件中,则“导入文件”选项将打开本地文件浏览器以选择该文件。 通过这些路由之一设置定义后,单击“导入应用程序”。

36. 运行时

仪表板应用程序的“运行时”选项卡显示所有正在运行的应用程序的列表。 对于每个运行时应用程序,将显示部署状态和已部署实例的数量。 通过单击应用程序 ID,可以获得已用部署属性的列表。

下图显示了正在使用的“运行时”选项卡的示例:

Spring Cloud Data Flow参考指南(五)_选项卡_05

图 13.正在运行的应用程序列表

37. 流

“流”选项卡有两个子选项卡:“定义”“创建流”。以下主题介绍如何使用每个主题:

  • ​​使用流定义​​
  • ​​创建流​​
  • ​​部署流​​
  • ​​访问流日志​​

37.1. 使用流定义

仪表板的“流”部分包括“定义”选项卡,该选项卡提供流定义列表。 在那里,您可以选择部署或取消部署这些流定义。 此外,您可以通过单击销毁来删除定义。 每行左侧都有一个箭头,您可以单击该箭头以查看定义的直观表示形式。 将鼠标悬停在可视化表示形式的框上会显示有关应用程序的更多详细信息,包括传递给它们的任何选项。

在以下屏幕截图中,流已展开以显示可视表示形式:​​timer​

Spring Cloud Data Flow参考指南(五)_Cloud_06

图 14.流定义列表

如果单击详细信息按钮,视图将更改为显示该流和任何相关流的可视化表示形式。 在前面的示例中,如果单击流的详细信息,视图将更改为以下视图,该视图清楚地显示了三个流之间的关系(其中两个流正在挖掘流):​​timer​​​​timer​

Spring Cloud Data Flow参考指南(五)_应用程序_07

图 15.“流详细信息”页

37.2. 创建流

仪表板的流”部分包括“创建流”选项卡,该选项卡使Spring Flo设计器可用。设计器是一个画布应用程序,它提供用于创建数据管道的交互式图形界面。

在此选项卡中,您可以:

  • 使用 DSL、图形画布或两者创建、管理和可视化流管道
  • 使用具有内容辅助和自动完成功能的 DSL 写入管道
  • 在 GUI 中使用自动调整和网格布局功能,简化管道的交互式组织

您应该观看此截屏视频,其中重点介绍了一些“Flo for Spring Cloud Data Flow”功能。 Spring Flowiki包含有关核心 Flo 功能的更详细内容。

下图显示了正在使用的 Flo 设计器:

Spring Cloud Data Flow参考指南(五)_Cloud_08

图 16.Flo for Spring Cloud Data Flow

37.3. 部署流

流部署页包括选项卡,这些选项卡提供设置部署属性和部署流的不同方法。 以下屏幕截图显示了 () 的流部署页。​​foobar​​​​time | log​

您可以使用以下命令定义部署属性:

  • 表单生成器选项卡:帮助您定义部署属性(部署程序、应用程序属性等)的构建器
  • 自由文本选项卡:自由文本区域(用于键值对)

您可以在两个视图之间切换。

表单构建器提供更强的输入验证。

37.4. 访问流日志

部署流应用程序后,可以从流页面访问其日志,如下图所示:​​summary​

Spring Cloud Data Flow参考指南(五)_应用程序_09

37.5. 创建扇入和扇出流

在扇入和扇出一章中,您可以了解如何使用命名目标来支持扇入和扇出用例。 UI 还为命名目标提供专用支持:

在此示例中,我们有来自HTTP源和JDBC 源的数据,这些数据被发送到sharedData通道,这表示一个扇入用例。 另一方面,我们有一个Cassandra Sink和一个订阅了sharedData通道的文件接收器,这代表了一个扇出用例。

37.6. 创建点击流

使用仪表板创建水龙头非常简单。 假设你有一个由HTTP 源文件接收器组成的流,并且你想要利用该流 同时将数据发送到JDBC 接收器。 要创建分流,请将HTTP 源的输出连接器连接到JDBC 接收器。 连接显示为虚线,表示您创建了点击流。

如果尚未为流提供名称,则会自动命名主流(HTTP 源文件接收器)。 创建分流时,必须始终明确命名主流。 在上图中,主流名为HTTP_INGEST

通过使用仪表板,您还可以切换主流,使其成为辅助分流。

将鼠标悬停在现有主流上,即HTTP 源文件接收器之间的行。 出现几个控制图标,并且通过单击标有切换到/从点击的图标, 您将主流更改为点按流。 对分流执行相同的操作,并将其切换到主流。

Spring Cloud Data Flow参考指南(五)_Cloud_10

图 22.切换主流的最终结果

直接与指定目的地交互时, 可以有“n”种组合(输入/输出)。这允许您创建涉及 各种数据源和目标。

37.7. 导入和导出流

仪表板的“导入/导出”选项卡包含一个页面,该页面提供导入和导出流的选项。

下图显示了流导出页面:

Spring Cloud Data Flow参考指南(五)_选项卡_11

图 23.“流实用工具导出”页

导入流时,必须从有效的 JSON 文件导入。您可以手动起草文件,也可以从流导出页面导出文件。

Spring Cloud Data Flow参考指南(五)_应用程序_12

图 24.“流实用工具导入”页

导入文件后,将确认操作是否已成功完成。

Spring Cloud Data Flow参考指南(五)_Cloud_13

图 25.“流实用工具导入结果”页

38. 任务

仪表板的“任务”选项卡当前有三个选项卡:

  • ​​应用程序​​
  • ​​定义​​
  • ​​执行​​
  • ​​调度​​

38.1. 应用程序

每个应用程序将一个工作单元封装到可重用的组件中。 在数据流运行时环境中,应用程序允许你为流和任务创建定义。 因此,“任务”选项卡中的“应用程序”选项卡允许您创建任务定义。


您还可以使用此选项卡创建批处理作业。

下图显示了任务应用程序的典型列表:

Spring Cloud Data Flow参考指南(五)_应用程序_14

图 26.任务应用程序列表

在此屏幕上,您可以执行以下操作:

  • 查看详细信息,例如任务应用程序选项。
  • 从相应的应用程序创建任务定义。

38.1.1. 查看任务应用程序详细信息

在此页上,您可以查看所选任务应用程序的详细信息,包括该应用程序的可用选项(属性)列表。

38.2. 定义

此页列出了数据流任务定义,并提供启动或销毁这些任务的操作。

下图显示了“定义”页:

图 27.任务定义列表

38.2.1. 创建任务定义

下图显示了由时间戳应用程序以及可用于创建任务定义的任务应用程序列表组成的任务定义:

Spring Cloud Data Flow参考指南(五)_Cloud_15

在此页上,还可以指定在应用程序部署期间使用的各种属性。 对任务定义满意后,可以单击“创建任务”按钮。然后,会出现一个对话框,要求提供任务定义名称和说明。至少必须为新定义提供一个名称。

38.2.2. 创建组合任务定义

仪表板包括“创建组合任务”选项卡,该选项卡提供用于创建组合任务的交互式图形界面。

在此选项卡中,您可以:

  • 使用 DSL、图形画布或两者创建和可视化组合任务。
  • 使用 GUI 中的自动调整和网格布局功能,可以简化组合任务的交互式组织。

[创建撰写任务]页面中,可以通过输入参数键和参数值来定义一个或多个任务参数。

不键入任务参数。

下图显示了组合任务设计器:

Spring Cloud Data Flow参考指南(五)_Cloud_16

图 28.组合任务设计器

38.2.3. 启动任务

创建任务定义后,您可以通过仪表板启动任务。 为此,请单击“任务”选项卡,然后按选择要启动的任务。 下图显示了“任务启动”页:​​Launch​

Spring Cloud Data Flow参考指南(五)_应用程序_17

图 29.任务启动页面

38.2.4. 导入/导出任务

“导入/导出”页面提供了导入和导出任务的选项。这是通过单击页面左侧的“导入/导出”选项来完成的。在此处,单击导出任务:使用所选任务创建 JSON 文件选项。此时将显示该页面。​​Export Tasks(s)​

同样,您可以导入任务定义。为此,请单击页面左侧的导入/导出选项。在此处,单击导入任务:从 JSON 文件导入任务选项以显示导入任务页面。在“导入任务”页上,必须从有效的 JSON 文件导入。您可以手动起草文件,也可以从“任务导出”页面导出文件。

Spring Cloud Data Flow参考指南(五)_Cloud_18

图 31.“任务实用工具导入”页

导入文件后,您将获得有关操作是否已成功完成的确认。

Spring Cloud Data Flow参考指南(五)_Cloud_19

图 32.“任务实用工具导入结果”页

38.3. 执行

“任务执行”选项卡显示当前正在运行和已完成的任务执行。在此页面中,您可以向下钻取到“任务执行详细信息”页面。此外,您可以重新启动任务执行或停止正在运行的执行

最后,您可以清理一个或多个任务执行。此操作将从基础暂留存储中删除任何关联的任务或批处理作业。此操作只能针对任务执行触发,并级联到子任务执行(如果有)。

下图显示了“执行”选项卡:

Spring Cloud Data Flow参考指南(五)_Cloud_20

图 33.任务执行列表

38.4. 执行细节

对于“任务执行”选项卡上的每个任务执行,您可以通过单击任务执行的“执行 ID”来检索有关特定执行的详细信息。

在此屏幕上,您不仅可以查看任务执行页面中的信息,还可以查看:

  • 任务参数
  • 外部执行 ID
  • 批处理作业指示器(指示任务执行是否包含春季批处理作业。
  • 作业执行 ID 链接(单击作业执行 ID 将转到该作业执行 ID 的作业执行详细信息。
  • 任务执行持续时间
  • 任务执行退出消息
  • 记录任务执行的输出

此外,您还可以触发以下操作:

  • 重新启动任务
  • 停止正在运行的任务
  • 任务执行清理(仅适用于父任务执行)

38.4.1. 停止执行任务

要向平台提交停止任务执行请求,请单击需要停止的任务执行旁边的下拉按钮。 现在单击停止任务选项。仪表板会显示一个对话框,询问您是否确定要停止任务执行。如果是这样,请单击。​​Stop Task Execution(s)​

通过使用远程分区的 Spring 批处理应用程序启动的子 Spring 云任务应用程序不会停止。

39. 工作

通过仪表板的“作业执行”选项卡,可以检查批处理作业。 屏幕的主要部分提供作业执行的列表。 批处理作业是每个作业执行一个或多个批处理作业的任务。 每个作业执行都有一个对任务执行 ID 的引用(在“任务 ID”列中)。

作业执行列表还显示基础作业定义的状态。 因此,如果已删除基础定义,则“状态”列中将显示“找到定义”。

您可以对每个作业执行以下操作:

  • 重新启动(对于失败的作业)。
  • 停止(用于正在运行的作业)。
  • 查看执行详细信息。

单击停止按钮实际上会向正在运行的作业发送停止请求,该作业可能不会立即停止。

下图显示了“作业”选项卡:

图 34.作业执行列表

39.1. 作业执行细节

启动批处理作业后,“作业执行详细信息”页面将显示有关该作业的信息。

下图显示了“作业执行详细信息”页:

Spring Cloud Data Flow参考指南(五)_选项卡_21

图 35.作业执行详细信息

“作业执行详细信息”页面包含已执行步骤的列表。 您可以通过单击放大镜图标进一步深入了解每个步骤执行的详细信息。

39.2. 步骤执行细节

“步骤执行详细信息”页面提供有关作业中单个步骤的信息。

下图显示了“步骤执行详细信息”页:

Spring Cloud Data Flow参考指南(五)_选项卡_22

图 36.步骤执行详细信息

“步骤执行详细信息”屏幕提供所有步骤执行上下文键值对的完整列表。

对于异常,“退出描述”字段包含其他错误信息。 但是,此字段最多可以包含 2500 个字符。 因此,在长异常堆栈跟踪的情况下,可能会修整错误消息。 发生这种情况时,请检查服务器日志文件以获取更多详细信息。

39.3. 步骤执行历史

“步骤执行历史记录”下,您还可以查看与所选步骤关联的各种指标,例如持续时间、读取计数、写入计数等。

40. 调度

您可以从 SCDF 仪表板为任务定义创建计划。有关详细信息,请参阅微型网站的“计划批处理作业”部分。

41. 审计

通过仪表板的“审核”页面,可以访问记录的审核事件。审核事件 记录在:

  • 创造
  • 删除
  • 部署
  • 取消部署
  • 任务
  • 创造
  • 删除
  • 发射
  • 任务调度
  • 创建计划
  • 删除计划

通过单击显示详细信息图标(右侧圆圈中的“i”),您可以获得有关以下内容的更多详细信息 审核详细信息:

通常,审核提供以下信息:

  • 记录是什么时候创建的?
  • 触发审核事件的用户的名称(如果启用了安全性)
  • 审核操作(计划、流或任务)
  • 执行的操作(创建、删除、部署、回滚、取消部署或更新)
  • 相关 ID,例如流或任务名称
  • 审计数据

审核数据属性的写入值取决于执行的审核操作和操作类型。 例如,在创建计划时,任务定义的名称, 编写任务定义属性、部署属性和命令行参数 到暂留存储。

在保存审核记录之前,会尽最大努力清理敏感信息。 正在检测以下任何键,其敏感值为 蒙面:

  • 密码
  • 秘密
  • .key
  • 令 牌
  • 。*凭据。*
  • vcap_services
举报

相关推荐

0 条评论