推荐一个 Java 事件驱动任务流框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Brentwans

推荐一个 Java 事件驱动任务流框架

  •  
  •   Brentwans 2021 年 1 月 18 日 1058 次点击
    这是一个创建于 1924 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不一定是叫事件驱动任务流框架,我实在没法给出个准确的工具类型的名称。
    需求是这样的。当前数仓里表会从生产库中的先导进来,然后各种 join,汇总,过滤,排序一系列操作后又产生一堆表。这一堆表结合各个业务部门需求,可能又各种计算后再次产生一堆表。

    表和表之间有比较复杂的血缘关系。每天晚上都会把需要的数据从生产库抽到数仓中后。然后用 spark 把按照每个表的创建时间的顺序,执行各种计算,产生那一堆堆的表。所以的一切都是按照时间来傻傻执行的,比如导数 1 点,那么安全起见,1 点半开始 spark 的任务运行,然后任务是按照创建时间顺序来调度运行的。

    这样的结构问题逐渐显现。随着数据增多,和数仓中各种表越来越多。spark 生成的时间现在一个晚上快生成不完了。其中主要问题是,有大量的表是无需计算的被计算了。比如销售部门的一张表,是由仓储部门的表各种计算产生的,而这张仓储部门的表一周才更新一次,所以销售部门的表一周一次计算就够了。但是现在系统是傻傻的每天都执行,把所有数仓中的表都计算一遍,这表多了自然就扛不住了。

    目前表的血缘关系已经有了。需要的是,仓储表开始往数仓导数并且成功后,触发计算并产生对应销售部门的表,这个表又计算成功后,接着触发下面的依赖表。

    此外每个操作(导入数据,执行 spark 各种计算等)对应各个步骤的事件也都有了。现在需要一个类似 iPhone 上面快捷指令或者 mas 上面自动操作那样的执行框架,根据血缘关系进行编排,然后根据各个事件来执行对应的表计算。

    这部分觉得功能不和公司业务绑定应该有类似工具,就不想重复造轮子了。但是找了好些,要么感觉是个小项目不靠谱,要么就不是以消息为基础,而是预先构造一个执行对象,把每一步设定好开始各个执行步骤,基于消息的可以单机跑,但是这个预先的执行对象的单机不太好控制整个集群中任务。
    拜托各位,有没有什么成熟的框架或者工具推荐的。
    bugFactory
        1
    bugFactory  
       2021 年 1 月 18 日
    按我的理解,你这里需要一个更好的调度系统
    Brentwans
        2
    Brentwans  
    OP
       2021 年 1 月 18 日
    @bugFactory 有轮子推荐一下吗?
    bugFactory
        3
    bugFactory  
       2021 年 1 月 18 日
    @Brentwans xxl-job 好像就可以,定时调度加事件触发
    /div>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2965 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 13:02 PVG 21:02 LAX 06:02 JFK 09:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86