Netflix Conductor源码分析--总体架构介绍

关于Netflix Conductor的简介和Demo使用,我已经在深入浅出Netflix Conductor使用文章中做了详细说明,从本文开始将深入分析Conductor的源码以及原理期待能够给喜欢Conductor的同学一些指导和建议。

一、Conductor源码总体介绍

从github(https://github.com/Netflix/conductor/)上面check源码后在idea界面上展示,如图1-1所示:

图1-1

从图中可以看到整个项目使用的是gradle进行项目管理的并且项目默认采用的是从jcenter仓库(http://jcenter.bintray.com)jar包下载非常慢,于是采用了阿里云的仓库,但是目前在企业开发过程中普遍使用的是maven来管理项目于对项目结构进行了转换,变成了maven结构,git地址如下:http://git.hualala.com/infrastructure/hualala-conductor

项目结构如图1-2所示:

图1-2

说明:

  • admin层
    由于Conductor采用的是DSL来做流程定义,但是没有可视化界面需要使用者每次自己手动书写流程定义,这样对使用者的要求就比较高必须要先非常熟悉定义格式才能进行编写,同时没有校验机制不知道写的是不是正确,同时写完流程格式定义文件后还需要自己手动上传到swagger管理界面中才能被server识别,所以基于此我们二次开发了一个模块admin,我们提供了界面通过在界面中简单填写数据生成DSL文件同时能够自动上传到swagger管理界面中。
  • client层
    Conductor的使用场景是服务编排,必然会涉及client和server端也就是说在我们的微服务中的服务中可以使用client端来和conductor的server端进行通信,根据不同状态来执行相应任务。
  • common层
    这一层主要涉及的是Task任务和Workflow工作流的元数据和请求参数定义,还有一些工具类。
  • core层
    这一层主要包括的是核心类,包括:事件、队列功能类,还包括任务类型定义、每种类型任务的具体实现逻辑和映射关系,比如分支条件如何进行判断,逻辑表达式如何解析,并行任务如何执行等等。
  • jersey层
    这个主要提供的是Swagger接口展示层,通过启动这个模块可以看到一个接口列表页面,用户可以在界面上操作接口实现任务和工作流元数据的编写和上传,还可以在界面上启动工作流引擎等。
  • es-persistence
    这一层主要是持久层,根据请求版本不同包括es5和es2二个模块,作用主要包括将任务和工作流元数据保存到es中,还有就是将任务运行时数据进行保存,比如任务执行的状态,执行时间等等。
  • mysql-persistence
    mysql持久层,存储任务和工作流定义的元数据。
  • redis-persistence
    redis持久层,存储任务和工作流定义的元数据。
  • server层
    负责conductor server端的启动、工作流任务的启动,由server层调用core层实现分布式状态机控制和任务的调度。
  • UI层
    可视化任务管理界面,通过该界面能够看到任务和工作流定义的元数据和图形展现,以及工作流执行的状态情况。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • Netflix Conductor框架是典型的服务编排框架,通过Conductor还可以实现工作流和分布式调度,性...
    小程故事多阅读 36,876评论 7 20
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,176评论 2 89
  • 静静地 月亮挂在天边 我走在教室外的夜幕下 树影一点一点随着谁的脚步 编织起路灯暖暖 默默地 轻风飘在街口 你来到...
    一只走心的90single汪阅读 1,729评论 0 4
  • 这个六月,刚刚毕业,沉溺于无尽的假期中,颠倒黑白的日子,会忽然觉得自己是不是堕落,可又能找到一个借口让自己安心于这...
    壁花少女W阅读 1,481评论 0 0

友情链接更多精彩内容