原创

Zeebe Docs翻译:1. 3 快速开始

温馨提示:
本文最后更新于 2019年10月07日,已超过 1,036 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

本教程应该帮助您了解Zeebe的主要概念,而无需编写任何代码。

注意:如果使用cmd或Powershell,则某些命令示例可能在Windows上不起作用。对于Windows用户,本指南建议使用类似bash的外壳,即Git Bash,Cygwin或MinGW。

步骤1:下载Zeebe发行版

您可以从Zeebe发布页面下载最新的发行

解压缩档案并进入Zeebe目录。

tar -xzvf zeebe-distribution-X.Y.Z.tar.gz cd zeebe-broker-X.Y.Z/

在Zeebe目录中,您会找到多个目录。

tree -d
. ├── bin - Binaries and start scripts of the distribution ├── conf - Zeebe and logging configuration └── lib - Shared java libraries

步骤2:启动Zeebe经纪人

要启动Zeebe代理,请使用文件夹中brokerbroker.bat文件 bin/

./bin/broker
23:39:13.167 [] [main] INFO io.zeebe.util.config - Reading configuration for class class io.zeebe.broker.system.configuration.BrokerCfg from file conf/zeebe.cfg.toml 23:39:13.246 [] [main] INFO io.zeebe.broker.system - Scheduler configuration: Threads{cpu-bound: 2, io-bound: 2}. 23:39:13.270 [] [main] INFO io.zeebe.broker.system - Version: X.Y.Z 23:39:13.273 [] [main] INFO io.zeebe.broker.system - Starting broker with configuration {

您将看到一些输出,其中包含代理的版本和配置参数,例如目录位置和API套接字地址。

要继续本指南,请打开另一个终端以使用Zeebe CLI执行命令zbctl

现在,我们可以检查Zeebe经纪人的状态。

./bin/zbctl status
Cluster size: 1 Partitions count: 1 Replication factor: 1 Brokers: Broker 0 - 0.0.0.0:26501 Partition 1 : Leader

步骤3:部署工作流程

一个工作流程是用来协调松散耦合的工作人员和他们之间的数据流。

在本指南中,我们将使用示例过程order-process.bpmn您可以使用以下链接下载它: order-process.bpmn

订单流程

该过程描述了收集钱财提取物品运送包裹这三个任务的顺序流程如果order-process.bpmn在文本编辑器中打开文件,您将看到每个任务都有一个type在XML中定义的属性,该属性以后将用作作业类型。

<!-- [...] --> <bpmn:serviceTask id="collect-money" name="Collect Money"> <bpmn:extensionElements> <zeebe:taskDefinition type="payment-service" /> </bpmn:extensionElements> </bpmn:serviceTask> <!-- [...] --> <bpmn:serviceTask id="fetch-items" name="Fetch Items"> <bpmn:extensionElements> <zeebe:taskDefinition type="inventory-service" /> </bpmn:extensionElements> </bpmn:serviceTask> <!-- [...] --> <bpmn:serviceTask id="ship-parcel" name="Ship Parcel"> <bpmn:extensionElements> <zeebe:taskDefinition type="shipment-service" /> </bpmn:extensionElements> </bpmn:serviceTask> <!-- [...] -->

要完成此工作流程的一个实例,我们需要针对每种类型分别激活和完成一项工作payment-serviceinventory-service并且shipment-service

但是首先让我们将工作流部署到Zeebe代理。

./bin/zbctl deploy order-process.bpmn
{ "key": 2251799813685250, "workflows": [ { "bpmnProcessId": "order-process", "version": 1, "workflowKey": 2251799813685249, "resourceName": "order-process.bpmn" } ] }

步骤4:创建工作流实例

部署工作流后,我们可以创建它的新实例。工作流的每个实例都是工作流的单个执行。要创建一个新实例,我们必须从BPMN文件中指定流程ID,在本例中,该ID order-process如以下定义order-process.bpmn

<bpmn:process id="order-process" isExecutable="true">

工作流的每个实例通常都处理某种数据。启动实例时,我们可以将实例的初始数据指定为变量。

注意:想要使用cmd或Powershell执行此命令的Windows用户必须以不同的方式对变量进行转义。

  • 命令: "{\"orderId\": 1234}"
  • 电源外壳: '{"\"orderId"\": 1234}'
./bin/zbctl create instance order-process --variables '{"orderId": 1234}'
{ "workflowKey": 2251799813685249, "bpmnProcessId": "order-process", "version": 1, "workflowInstanceKey": 2251799813685251 }

步骤5:完成工作流程实例

为了完成实例,必须执行所有三个任务。在Zeebe中,将为工作流实例执行期间完成的每个任务创建一个作业。为了完成一项工作,从而完成相应的任务,必须由工作人员激活并完成它作业工人是一个寿命很长的过程,它反复尝试激活给定作业类型的作业,并在执行其业务逻辑后完成作业。zbctl还提供了一个命令使用外部命令或脚本产卵简单的工作人员。作业工作者将为每个作业接收工作流实例变量作为JSON对象, stdin并且stdout如果成功处理了作业还必须作为JSON对象返回其结果

在此示例中,我们使用unix命令cat该命令仅输出它在上接收的内容stdin为了完成一个工作流实例我们现在要创建一个作业工人每个从工作流定义三个任务类型:payment-service, inventory-serviceshipment-service

注意:对于Windows用户,此命令不适用于cmd,因为该cat 命令不存在。我们建议使用Powershell或类似bash的shell来执行此命令。

./bin/zbctl create worker payment-service --handler cat & ./bin/zbctl create worker inventory-service --handler cat & ./bin/zbctl create worker shipment-service --handler cat &
2019/06/06 20:54:36 Handler completed job 2251799813685257 with variables {"orderId":1234} 2019/06/06 20:54:36 Activated job 2251799813685264 with variables {"orderId":1234} 2019/06/06 20:54:36 Handler completed job 2251799813685264 with variables {"orderId":1234} 2019/06/06 20:54:36 Activated job 2251799813685271 with variables {"orderId":1234} 2019/06/06 20:54:36 Handler completed job 2251799813685271 with variables {"orderId":1234}

在工作人员在后台运行之后,我们可以创建工作流的更多实例,以观察工作人员如何完成工作。

./bin/zbctl create instance order-process --variables '{"orderId": 12345}'

要关闭所有作业工人,请使用kill命令停止后台进程。

kill %1 %2 %3

如果要可视化工作流实例的状态,可以启动 Zeebe简单监视器

下一步

要继续使用Zeebe,我们建议您更加熟悉Zeebe的基本概念,请参阅文档的“ 基础知识”一章

在“ BPMN工作流”一章中,您可以找到有关使用BPMN创建工作流的介绍。BPMN Modeler的章节展示了如何通过自己的模型它们。

该文档还提供了使用JavaGo实现作业人员的入门指南

正文到此结束
本文目录