有人可以分享有关如何使用 Netflix Conductor 的教程吗?github上有没有类似代码示例之类的?我已经在 Amazon SWF 上完成了一个示例,并了解了整个工作原理,但需要一些关于开始使用 Conductor 的指示。
2 回答
最初的首选资源是 Netflixconductor 的官方文档。可能帮助任何人加快速度的其他部分是指挥的实际工作。Conductor 服务器主要管理任务的生命周期。
假设指挥服务器正在使用默认配置运行。要执行工作流,您需要
- 创建任务定义,
- 创建使用步骤 1 中的任务定义的工作流定义,
- 执行工作流。
作为执行的一部分,指挥服务器安排工作流中的下一个任务。如果您刚刚执行,这是工作流中的第一个任务。Conductor 在内部使用动态队列,其中任务可供客户端使用(客户端可以是内部任务,也可以是通过 REST API 与导体交互的外部工作应用程序)。
我最初的主要疑问是工人如何以及在哪里运行?如果您的工作人员可以访问指挥员公开的 REST API 并能够更新任务的状态,则工作人员可以在月球上运行。即你可以在任何需要的地方运行微服务。
一个简单的用例可能是入职工作验证。为了在入职前验证员工,您可以检查犯罪背景、毒品、教育验证等,如果您在您的场所运行指挥服务器并将员工安置在负责上述区域的机构,员工将执行检查并相应地更新工作流程。
Conductor 与显式组件集成,例如弹性搜索、由 redis 支持的用于数据存储的 dynomite。您可以通过 HA 集群配置这些。
使用 contribs 模块,您可以为任务集成外部 MQ 代理,并使用相应的接收器详细信息更新您的工作流,以便将事件发布到配置的接收器。
您还可以拥有其他工作流,您可以通过事件处理程序以松散耦合的方式将其作为主工作流的子工作流执行。在上述用例中,这个子工作流可以是教育验证的工作流,或者是犯罪背景调查等的子工作流。
由于导体的无状态特性,您可以通过容器化运行导体的多个实例。
我认为最简单的方法是使用 docker。
克隆此存储库: https ://github.com/Netflix/conductor
转到,指挥/码头工人并运行,码头工人组成
现在,在 http://localhost:5000 上打开浏览器
在左侧菜单中,您将看到工作流定义项,您可以在其中看到工作流示例。
要部署您自己的工作流程,请从该站点复制 json,更改名称并使用此软件 Postman.com 进行部署。
发布到此端点以进行部署:http://localhost:8080/api/metadata/workflow
向此端点发布帖子以运行您的工作流程:http://localhost:8080/api/workflow/