Netflix Conductor microservices orchestration engine.


盘古BPM-BPM快速开发平台-工作流引擎-工作流管理系统
http://www.pangubpm.com/

机器人流程自动化与数字流程自动化
http://www.pangubpm.com/doc5359.html

50个业务自动化思想
http://www.pangubpm.com/doc5356.html

无服务功能
http://www.pangubpm.com/doc5357.html

GitHub - Netflix/conductor: Conductor is a microservices orchestration engine.
https://github.com/Netflix/conductor

Conductor
https://netflix.github.io/conductor/

Architecture - Conductor
https://netflix.github.io/conductor/architecture/

Start a Workflow - Conductor
https://netflix.github.io/conductor/gettingstarted/startworkflow/

Netflix Conductor:流程的反转控制-InfoQ
https://www.infoq.cn/article/netflix-conductor-introduction

开源微服务编排框架:Netflix Conductor - 知乎
https://zhuanlan.zhihu.com/p/440578308

ExecutionLockService
WorkflowReconciler会定期尝试decide所有正在运行中的流程用于超时判断、维护流程一致性。但是流程本身正常执行也会触发decide,如果同一个执行同时触发两个decide,可能会导致状态混乱,执行卡住等问题。

conductor采用了锁来解决这个问题,其提供了单机LocalOnlyLock(基于信号量实现)、redis分布式锁(基于redission实现)、zookeeper分布式锁三种实现。

decide方法中最开始会尝试获取锁,如果获取失败则直接返回。通过锁来保障不会对同一个流程实例并发执行decide。

if (!executionLockService.acquireLock(workflowId)) {
return false;
}
由于锁是可配置的,可能会导致一个误区:单台机器的话不用配置锁。其实单机也是需要配置锁的,因为WorkflowReconciler和流程正常执行会产生冲突,可能会导致偶发的流程状态混乱问题。

Netflix Conductor和 电力仿真 BPA 潮流计算 有众多 思维相似之处。

深入浅出Netflix Conductor使用 - 简书
https://www.jianshu.com/p/4eae1af8afa8