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

2019-08-23 09:58:29 +08:00
 MatthewHan

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

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

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

5853 次点击
所在节点    Java
15 条回复
MatthewHan
2019-08-23 10:51:27 +08:00
😢
wysnylc
2019-08-23 11:52:45 +08:00
xxl-job 一个成熟的分布式任务调度平台
wysnylc
2019-08-23 11:53:31 +08:00
等等,你这个不是用框架能解决的,这是业务需求!
autogen
2019-08-23 12:28:42 +08:00
这个一般都是塞 DB,再用另一个程序查 DB 做任务
caoyouming
2019-08-23 12:58:48 +08:00
airflow 分布式任务调度系统了解一下?
lhx2008
2019-08-23 12:59:58 +08:00
塞 DB+死循环就行,没有那么复杂
Takamine
2019-08-23 14:04:43 +08:00
你们是要做一个平台,Kafka 只是一个中间件,这是是两个概念吧。
luozic
2019-08-23 14:10:08 +08:00
kafka 是一个消息队列,调度之后的消息处理倒是可以扔给 kafka,前面的调度还是得你自己搞
jswh
2019-08-23 14:42:24 +08:00
你这是业务需求 + 1
kafka 这种只是消息队列,不会管到这么细致的。
EastLord
2019-08-23 15:25:44 +08:00
azkaban?
MatthewHan
2019-08-23 15:34:36 +08:00
@lhx2008 这样对资源的消耗怎么样?
jsnjfz
2019-08-23 19:18:33 +08:00
没有开发经验。。。只能求助外力了吧
wind3110991
2019-08-23 21:48:56 +08:00
楼上很多答非所问,你这个用 kafka 或者 redis 调度都是可以的,就是抽象成一个生产者消费者模型就好。
kafka 消息队列中间件最大的好处,就是可以解耦复杂系统之间的依赖关系,
设计多个 Topic,用来存放不同优先级的消息,消费者端优先处理高优先级 topic 即可,你这个都不需要保证消息先后顺序。
消息处理后的结果,看数量级是否巨大,较小百万以下,直接 Mysql 分表搞定,千万上亿量级用 Hbase 或者 ES 来存储和查询,涉及分布式计算协同和汇总结果的,考虑用 kafka stream 或者 flink 方案。
reus
2019-08-24 16:02:15 +08:00
向你领导提一个建议,招一个专业人士来做专业的工作
luozic
2019-08-24 17:31:47 +08:00
锤子的确可以通过别的方式模拟别的东西,但是啥都用锤子 mock,请问啥叫 DDD。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594401

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX