Netflix Conductor流程系统(二):官方样例搭建

一、首先从git上检出项目

这个https://github.com/Netflix/conductor是项目的github地址,

选择SSH或者HTTPs检出,git clone git@github.com:Netflix/conductor.git(执行git命令需要先安装git)至任意位置

二、启动本地服务

进入项目目录下,右键git bash here,执行命令cd server进入server目录,再执行../gradlew server,然后等待项目构建成功即可。注意:此处JDK版本必须为1.8否则会报错:无效的源发行版: 1.8。启动成功后会创建一个kitchen workflow样例:


此时可以打开http://localhost:8080/查看Swagger APIs。


重新打开一个git命令窗口,执行cd ui,进入ui目录,执行gulp watch等待构建成功即可。注意:需要执行gulp命令,首先需要安装node.js,并且由于框架使用了import,node.js版本必须使用8.0以上,node装好后再安装glup。顺序应该为:安装node.js->全局安装gulp->项目安装gulp。

成功后可打开http://localhost:3000查看任务相关,如下图:



运行时模型:

Conductor 遵循RPC的通讯模型,其中workers运行在与 服务器分离的应用机器上,并通过HTTP协议或者是轮询的方式来管理work队列。


1.Workers作为远程系统,通过HTTP协议(或者任意支持的RPC机制)同Conductor 服务进行通信。

2.任务队列用于为workers安排任务,Conductor使用内部的dyno-queues 作为任务队列,当然也可以使用其他SQS(简单队列)或者pub-sub机制的队列作为代替。

3.conductor-redis-persistence模块使用Dynomite作为存储引擎,以及Elasticsearch作为索引的解决方案。

4.对于存储和索引支持不同数据库。

一个新的workflow的注册和执行需要以下步骤:

1.定义这个workflow需要的task

2.创建workflow。

3.创建消费这些任务的workers并通过轮询的方式来获取任务。

4.触发工作流执行:

POST /workflow/{name}{

... //json payload as workflow input

}

5.轮询获取任务

GET /tasks/poll/batch/{taskType}

6.更新任务状态

POST /tasks{

"outputData": {

"encodeResult":"success",

"location": "http://cdn.example.com/file/location.png"

//any task specific output

},

"status": "COMPLETED"

}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值