orkes-conductor源码分析

1.背景:

该版本在conductor进行了二次开发,目前验证发现其http task的执行非常高效,从这个角度发出分析下其实现原理(原生的http task的实现可参考 conductor server端源码解析(3)-systemTask

2.http task:

实现了一个同步执行的http task实现类:
io.orkes.conductor.execution.tasks.HttpSync
在这里插入图片描述

对同步执行的system task进行并行化处理,提交到现成池执行:
com.netflix.conductor.core.execution.OrkesWorkflowExecutor#scheduleTask
在这里插入图片描述

2.1 task的信息更新:

com.netflix.conductor.core.dal.ExecutionDAOFacade#updateTask
——> com.netflix.conductor.core.dal.ExecutionDAOFacade#updateTask
在这里插入图片描述

默认的归档实现:
io.orkes.conductor.dao.archive.ArchivedExecutionDAO#updateTask
在这里插入图片描述
在这里插入图片描述

3.System Task的同步执行:

开始一个workflow实例(具体参考 conductor server端源码解析(5)-注册、启动一个流程 )是接收一个http请求开始的,会同步调用到
com.netflix.conductor.core.execution.WorkflowExecutor#decide

该方法是任务调度的核心,对于同步的http task而言,在此方法中递归完成整个workflow的执行
在这里插入图片描述
在这里插入图片描述
上图中的 scheduleTask() 方法 即为上一节中提到的:
com.netflix.conductor.core.execution.OrkesWorkflowExecutor#scheduleTask
在这里插入图片描述

4.结论

orkes-conductor 的http-task的执行相比于原生conductor高效的原因是 将异步条用改成了同步调用,由server端完成流程中各节点的rpc调用

个人认为,这是对conductor能力的增强,能在编排场景解决一些对执行耗时有一定要求的场景,但不不应作为主要场景使用,server端调用、递归执行,都会增加server端的负载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值