graphize

图异步调度引擎框架

基于配置化DAG(有向无环图)异步调度引擎,并基于brpc提供访问brpc、http等外部服务的框架

说明:

  1. DAG通过配置文件配置图的拓扑关系; DAG的自动推导 vs DAG配置文件: DAG的自动推导: a. 自动推导依赖用户的代码,很多时候用户不会及时删除无用代码或是代码过于复杂以至于很难对代码全局了解清楚,因而导致自动推导的图可能不是最优的拓扑结构

    b. 再者就是了解DAG的结构需要对代码了解比较清楚

    c. 自动推导依赖模板编程,难度比较大,代码可读性不好,难以维护升级

    d. 尤其是当进程支持多个DAG时,配置一个新的DAG,由于(1,2)的原因成本比较高,门槛会比较高;配置一个新的DAG,自动推导方式也需要修改代码去“告诉”框架新增一个DAG

DAG配置文件:DAG的结构获取仅依赖配置文件,比较容易维护和新增DAG,缺点就是用户除了开发代码还需要开发配置文件(配置文件开发量小)

基于上述考虑,个人认为,自动推导的实现成本大,收益小,且添加新DAG时,修改配置文件的方式会比自动推导修改代码方式更加简单友好,所以该项目选择DAG配置文件的方式(其实主要原因是模板编程难度比较大,不想烧脑了 。。。)

  1. 提供一些基于brpc简单封装的访问外部服务(redis,brpc,http)的能力

  2. 该项目基于mac os系统开发,编译脚本用的blade,并且是基于mac os的,linux的需要改下编译脚本

依赖其他开源项目:

  1. brpc
  2. https://github.com/denghongcai/node-shm-cache (缓存组件)
  3. gflag 。。。