导读:相对于传统架构,微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备功能。Netflix Conductor作为服务编排的佼佼者,从推出就引起很大关注。本文深入浅出的介绍了起基本功能和设计。
Netflix内容平台工程团队支撑了许多业务,这些业务流程由微服务任务异步驱动的。 其中一些任务是持续数天的长期进程。 这些进程在为全球观众提供字幕方面发挥着至关重要的作用。
比如:
Studio合作伙伴内容集成
来自合作伙伴的基于IMF的内容集成
在Netflix中设置新标题
接收内容,编码和部署到CDN
传统做法中,这些进程是临时编排的,使用pub/sub 组合起来,直接进行REST调用,并使用数据库来管理状态。 然而,随着微服务数量和流程复杂性的增加,如果没有中央协调器,就无法了解这些分布式工作流(workflow)。
我们将Conductor“作为编排引擎”构建,以满足以下需求,在应用程序中消除了模板,并提供反应流:
使用基于JSON DSL 的蓝图定义执行流程。
跟踪和管理工作流。
能够暂停,恢复和重新启动进程。
用户界面可视化处理流程。
能够在需要时同步处理所有任务。
能够扩展到数百万个并发运行的流程。
由客户端提取出来的