11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

Netflix Conductor:一个微服务编制引擎

  • 2016-12-25
  • 本文字数:732 字

    阅读完需:约 2 分钟

Netflix 开发了一个叫“ Conductor ”的编制引擎,已经在内部生产环境中使用了一年了。在这段时间里,Netflix 已经运行了大约 260 万个处理工作流,包括简单的线性工作流,以及运行数天的动态工作流。现在 Netflix 开源了 Conductor,所有对工作流编制感兴趣的人都能使用它。

根据 Netflix 的 Conductor 开发文档的描述,这个引擎包含以下几个主要特性:

  • 能够构建复杂工作流
  • 能够通过微服务执行任务
  • 使用 JSON DSL 描述的工作流蓝图
  • 执行过程可见、可跟踪
  • 能够暂停、恢复、重启、停止任务
  • 任务执行通常是异步的,也可以强制同步执行
  • 处理工作流能够扩展到百万级别

Conductor 的架构图如下:
conductor-architecture

API 和存储层都是可插拔的,允许使用不同的队列和存储引擎。Netflix 使用 Dynomite 做为存储方案,但也能够通过实现一个接口来转换成别的方案。

工作流中的任务分为两种类型: Worker,运行在远端机器上的用户任务;System,运行在引擎的 JVM 上的任务。后者是用来对 Worker 执行任务进行 branch、fork、join。Worker 任务通过 HTTP 或者 gRPC(基于 HTTP/2)和 Conductor 通信。

Netflix 决定开发一个编制(orchestration)而不是编排(choreography)引擎,是因为后者在他们的测试中扩展性不好。相关问题如下:

  • 过程流被“嵌入到”多个应用的代码里
  • 通常,在输入和输出、SLAs 等方面存在强耦合和假设,导致很难适应需求的变化
  • 几乎没有办法系统地回答“某过程 X 完成了多少”?

Conductor 在 GitHub 上开源,使用 Apache License 2.0 许可。

查看英文原文 Netflix Conductor, an Orchestration Engine for Microservices


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-25 18:006620
用户头像

发布了 40 篇内容, 共 30.8 次阅读, 收获喜欢 131 次。

关注

评论 1 条评论

发布
用户头像
请问下,260 万个处理工作流:这个数据从哪来的?看另外一个报告是100个左右的工作流
2022-02-28 17:48
回复
没有更多了
发现更多内容

IMC御用设备到底有多强?英特尔携手掠夺者呈现“飞”一般5GHz电竞盛宴

最新动态

架构师训练营第10周

大丁💸💵💴💶🚀🐟

软件规模扩张与其组织粒度的进化

superman

中台 微服务 服务化改造

35岁腾讯员工被裁员感叹:北京一套房,存款700多万,失业好焦虑

程序员生活志

程序员

Flink 支持的重启策略有哪些

奈学教育

flink

信息管理软件需求分析阶段的实践经验及论述(2010年)

朱又生

项目管理 产品经理 需求分析 用户需求调研

中国计算机软件开发合同纠纷分析报告(2019-2)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

RushPlayer“一键下马”系列之-JavPlayer

flow

Oracle常用命令

阡陌r

低/零代码的认知误区有哪些?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

第十周作业

晨光

即大数据后-贵阳能否成为区块链的机遇之城?

CECBC

区块链 大数据 贵阳

快速学习秘诀:费曼学习法

池建强

学习

如何通过electron构建桌面跨平台音视频应用

ZEGO即构

音视频 Electron RTC

week10 学习总结

任小龙

架构师训练营第十周作业

一剑

只加两行代码,为什么用了整整两天时间?

程序员生活志

编程 bug

Kubernetes 网络通讯模型解析

ninetyhe

将设计模式应用到日常的curd中-模板方法和装饰器

LSJ

Java 设计 设计模式 装饰器 模板方法

SpreadJS 纯前端表格控件应用案例:医疗行业智能报表系统

葡萄城技术团队

娱乐至穷

北柯

学习 互联网 娱乐 抖音

Flink 支持的重启策略有哪些

古月木易

flink

第四届IMC再起烽烟 极致性能助战力升级!

最新动态

中国计算机软件开发合同纠纷分析报告(2019-1)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

微服务

石刻掌纹

华章科技好书5折优惠,满99再减10元

华章IT

Python AI 数字化转型 Java 25 周年 计算机科学丛书

中国计算机软件开发合同纠纷分析报告(2019-3)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

SpreadJS 纯前端表格控件应用案例:生产采购管理软件

葡萄城技术团队

第十周总结

晨光

央行清算总中心与三家银行签署区块链福费廷交易平台合作协议

CECBC

区块链技术 人民银行

anyRTC 4.0 以心铸造,以梦相承

anyRTC开发者

anyRTC 4.0 官网升级

Netflix Conductor:一个微服务编制引擎_开源_Abel Avram_InfoQ精选文章