Netflix Conductor作为工作流引擎解决方案

时间:2018-08-03 21:29:27

标签: workflow-engine netflix-conductor

有人可以分享有关如何使用Netflix Conductor的教程吗?在github上有类似的代码示例吗?我已经在Amazon SWF上完成了一个示例,了解了整个过程是如何工作的,但是需要一些有关Conductor入门的指导。

2 个答案:

答案 0 :(得分:1)

初始访问资源是Netflix发行人的官方文档。可能帮助任何人加快速度的其他部分是导体的实际工作。 导体服务器主要管理任务的生命周期。

假定导体服务器正在使用默认配置运行。要执行工作流程,您需要

  1. 创建任务定义,
  2. 创建使用步骤1中的任务定义的工作流程定义
  3. 执行工作流程。

作为执行的一部分,指挥服务器计划工作流程中的下一个任务。如果您刚刚执行,它是工作流程中的第一项任务。当任务可供客户端使用时,Conductor在内部使用dyno队列(客户端可以是内部任务,也可以是通过REST API与导体交互的外部工作程序)。

我最初主要的疑问是工人如何以及在哪里工作?只要您的工作人员可以访问由指挥公开的REST API,并且能够将任务状态更新回去,工作人员就可以在月球上奔跑。也就是说,您可以在需要的任何地方运行微服务。

一个简单的用例可能是入职就业验证。为了在入职前验证员工,您可以检查犯罪背景,毒品,教育证明等。如果您在自己的场所中运行指挥服务器,并且将工人安置在负责上述地区的机构中,则工人将进行检查并相应地更新工作流程。

导体与显式组件集成在一起,例如弹性搜索,由redis支持的用于数据存储的炸药。您可以通过HA群集配置这些资源。

使用contribs模块,您可以为任务集成外部MQ代理,并使用各自的接收器详细信息更新工作流,以便将事件发布到已配置的接收器。

您还可以具有其他工作流程,这些工作流程可以通过事件处理程序以松散耦合的方式作为主工作流程的子工作流程执行。在上述用例中,此子工作流可以是用于教育验证的工作流,也可以是用于犯罪背景检查的子工作流等。

由于导体的无状态性质,您可以通过容器化来运行导体的多个实例。

答案 1 :(得分:0)

我认为最简单的方法是使用docker。

克隆此存储库: https://github.com/Netflix/conductor

转到指挥家/泊坞窗并运行,docker-compose up

现在,在http:// localhost:5000

上打开浏览器

在左侧菜单上,您将看到工作流程定义项,在这里您可以看到工作流程示例。

要部署自己的工作流程,请从此站点复制json,更改名称并使用此软件Postman.com进行部署。

在此端点上发布以进行部署:http:// localhost:8080 / api / metadata / workflow

在此端点上发布帖子以运行您的工作流:http:// localhost:8080 / api / workflow /