V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MatthewHan
V2EX  ›  Java

用 kafka 设计一个任务调度方案

  •  
  •   MatthewHan · 2019-08-23 09:58:29 +08:00 · 5849 次点击
    这是一个创建于 1944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这周领导交代了一个任务,关于我们平台智能化工具多租户调用需要设计一个任务调度平台,该平台满足以下特点:

    1.多个智能化工具还未部署,工具处理量有限,最基本的异步排队消息队列,支持任务阻塞; 2.优先级调用,不同租户下用户调用智能化工具的优先级不同,先排队的任务可能会被后进的任务插队(未细化); 3.任务处理消息结果反馈与查询; 4.....

    本人没有在实际的互联网或者软件公司实习、工作过,在这部分没有什么经验,正处于一个学习中的小白,请教一下大家有没有比较优雅的方案,或者说能够给点建议和观点谢谢,用 kafka 实现是否能够完全满足目前以及今后的需求?

    15 条回复    2019-08-24 17:31:47 +08:00
    MatthewHan
        1
    MatthewHan  
    OP
       2019-08-23 10:51:27 +08:00
    😢
    wysnylc
        2
    wysnylc  
       2019-08-23 11:52:45 +08:00
    xxl-job 一个成熟的分布式任务调度平台
    wysnylc
        3
    wysnylc  
       2019-08-23 11:53:31 +08:00
    等等,你这个不是用框架能解决的,这是业务需求!
    autogen
        4
    autogen  
       2019-08-23 12:28:42 +08:00
    这个一般都是塞 DB,再用另一个程序查 DB 做任务
    caoyouming
        5
    caoyouming  
       2019-08-23 12:58:48 +08:00
    airflow 分布式任务调度系统了解一下?
    lhx2008
        6
    lhx2008  
       2019-08-23 12:59:58 +08:00 via Android
    塞 DB+死循环就行,没有那么复杂
    Takamine
        7
    Takamine  
       2019-08-23 14:04:43 +08:00 via Android
    你们是要做一个平台,Kafka 只是一个中间件,这是是两个概念吧。
    luozic
        8
    luozic  
       2019-08-23 14:10:08 +08:00
    kafka 是一个消息队列,调度之后的消息处理倒是可以扔给 kafka,前面的调度还是得你自己搞
    jswh
        9
    jswh  
       2019-08-23 14:42:24 +08:00
    你这是业务需求 + 1
    kafka 这种只是消息队列,不会管到这么细致的。
    EastLord
        10
    EastLord  
       2019-08-23 15:25:44 +08:00
    azkaban?
    MatthewHan
        11
    MatthewHan  
    OP
       2019-08-23 15:34:36 +08:00
    @lhx2008 这样对资源的消耗怎么样?
    jsnjfz
        12
    jsnjfz  
       2019-08-23 19:18:33 +08:00
    没有开发经验。。。只能求助外力了吧
    wind3110991
        13
    wind3110991  
       2019-08-23 21:48:56 +08:00   ❤️ 1
    楼上很多答非所问,你这个用 kafka 或者 redis 调度都是可以的,就是抽象成一个生产者消费者模型就好。
    kafka 消息队列中间件最大的好处,就是可以解耦复杂系统之间的依赖关系,
    设计多个 Topic,用来存放不同优先级的消息,消费者端优先处理高优先级 topic 即可,你这个都不需要保证消息先后顺序。
    消息处理后的结果,看数量级是否巨大,较小百万以下,直接 Mysql 分表搞定,千万上亿量级用 Hbase 或者 ES 来存储和查询,涉及分布式计算协同和汇总结果的,考虑用 kafka stream 或者 flink 方案。
    reus
        14
    reus  
       2019-08-24 16:02:15 +08:00
    向你领导提一个建议,招一个专业人士来做专业的工作
    luozic
        15
    luozic  
       2019-08-24 17:31:47 +08:00
    锤子的确可以通过别的方式模拟别的东西,但是啥都用锤子 mock,请问啥叫 DDD。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.