使用Zeebe编排云事件(中)

 

使用Zeebe编排云事件(中)

编排方法

工作流引擎旨在协调服务和人员,共同提供可见性和审核日志以说明工作的完成方式。这些引擎通过自动化(运行)表示服务到服务和服务到人的交互的模型来工作。这些模型提供了图形表示,不仅可以由专业的技术人员理解,而且可以由公司内部的每个非技术人员理解。工作流引擎可帮助我们确保被编排的服务不需要彼此了解,这使我们的服务分离且独立。

如果将CloudEvents添加到图片中,则工作流引擎将自身发出和使用云事件,然后可以执行有关其事件顺序的某些规则。工作流引擎还将为所有这些交互和自动数据聚合提供开箱即用的可见性,以从业务角度了解我们的系统如何协同工作。

OMG是BPMN,这是一种广为人知且在业界广泛使用的建模语言 。BPMN中的工作流模型如下所示:

BPM工作流模型

 

该图未对服务应位于何处或如何与它们进行交互施加任何运行时约束,它仅定义了这些事件应是什么顺序,例如何时发出某些事件。票务服务和支付服务都可以在云中运行,无论有无容器都可以在本地。Zeebe可以精心策划这些事件,以确保正确跟踪购票事件。 

在这个非常简单的示例中,认识到BPMN提供的灵活性和功能很重要。BPMN开箱即用,我们可以使用计时器边界事件来定义接收云事件的超时,并在出现问题时进行错误处理。BPMN可以做的比本示例中所示的要多得多,例如,根据条件拆分流,并行执行任务,更复杂的错误处理等。 您可以在此处找到有关BPMN的更多信息。

您可以在此处找到此博客文章和其他一些示例中使用的BPMN模型:https :  //github.com/salaboy/zeebe-cloud-events-examples

建筑

通过使用像Zeebe这样的云原生工作流引擎 ,我们可以使用简单的BPMN图定义事件流,该图使我们能够以图形方式表达非常复杂的场景。

工作流协调器Zeebe在支持不同的部署方案方面非常灵活。可以使用Docker Compose将其安装到您的本地环境中,或者使用Helm在Kubernetes上运行 ,也可以利用 Camunda Cloud( 可为您提供免安装和托管的Zeebe Cluster实例)。

为了使Zeebe能够使用和发出Cloud Events,您将需要  Zeebe Cloud Events Router,该路由器可以将BPMN事件和命令映射到现有服务可以理解的Cloud Events。这是一个双向路由器,因为它负责翻译在协调器范围之外(在Zeebe之外)生成的事件,并发出用于特定于域的服务的事件。

Zeebe 构成

 

可以通过各种协议(例如,Kafka,WebSockets或HTTP)传输云事件。这篇博客文章侧重于HTTP,在以后的文章中,您将看到如何将这些HTTP Cloud Event端点与使用其他传输的服务集成在一起。

Zeebe Cloud Events路由器公开了一组HTTP端点来接收外部Cloud Events:

/ POST-  >接收将被映射到作业完成的Cloud Event,这将使任务继续进行。

/ jobs GET-  >获取待完成作业的列表

/ message POST-  >接收将被映射到BPMN消息的云事件

/ workflow POST-  >接收将被映射为启动工作流实例的云事件

/ workflows POST-  >在Cloud Event Type和Workflow Key之间创建映射,因此我们可以使用Cloud Event启动新的Workflow实例

/ workflows GET-  >将所有可用的云事件获取到工作流映射

您始终可以通过将浏览器指向http:// <IP地址>:<PORT> /swagger-ui.html 来访问路由器中的Open API UI, 以获取Zeebe Cloud Events路由器提供的REST端点的更具交互性的列表。 

 

相关教程