Zeebe Docs翻译:1. 3 快速开始
本教程应该帮助您了解Zeebe的主要概念,而无需编写任何代码。
注意:如果使用cmd或Powershell,则某些命令示例可能在Windows上不起作用。对于Windows用户,本指南建议使用类似bash的外壳,即Git Bash,Cygwin或MinGW。
步骤1:下载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代理,请使用文件夹中的broker
或broker.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-service
,inventory-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-service
和shipment-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的章节展示了如何通过自己的模型它们。
- 本文标签: 其他
- 本文链接: https://www.v8en.com/article/180
- 版权声明: 本文由SIMON原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权