使用Zeebe实现微服务工作流编排 - Berndruecker

19-09-27 banq
                   

将Zeebe作为工作流引擎,您可以:

  • 以您选择的编程语言构建应用程序(Zeebe提供JavaNode.jsC#GoRust的语言客户端),
  • 使用命令行工具部署工作流,启动实例或创建工作程序,
  • 使用现有的HTTP工作程序来调用REST API。

当然,您也可以利用Zeebe生态系统的其他组件,例如Kafka Connector

微服务编排

工作流引擎的常见用例是编排微服务以实现业务能力。我经常使用一个著名的领域来形象化这一点:订单履行。您可以想象通过Zeebe连接到满足客户订单所需的各种微服务:

当然,您不必被迫使用Zeebe作为微服务之间的传输-您可能希望利用现有的通信传输-例如REST,Kafka或消息传递。在这种情况下,工作流程看起来大致相同,但是只有一个微服务知道Zeebe,并且有一些代码可以在工作流程任务和Kafka等之间转换。

具体代码见:这里

无服务器功能编排

如果您没有服务器,也可以构建许多功能。一个关键问题将是如何协调相互依赖的功能。让我们在这里做一个Saga模式的经典示例:您有一个功能可以预订租车,一个功能可以预订酒店,而一个功能可以预订航班。

现在,您要提供一个预订整个行程的功能,需要使用其他功能。您可以利用工作流程来完成此工作,而不必在旅行预订功能中对功能调用进行硬编码。

展示如何在Camunda Cloud中使用Zeebe协调无服务器功能