揭秘贝壳找房作业调度系统KOB

贝壳找房是2018年4月推出的“新居住”服务平台,为消费者提供包括二手房、新房、租赁等全方位的居住服务。随着公司业务的发展和中台战略的推进,为了管理大量的分布式调度任务,贝壳找房技术团队开发了一套中心化的作业调度系统KOB(Ke Job的简称),定义了公司的任务调度模型,实现了任务调度的统一管理和监控。

KOB是贝壳找房开发的分布式作业调度系统,其架构简介如下:

揭秘贝壳找房作业调度系统KOB

作为贝壳找房的大型开源项目之一,KOB背后的核心功能和创新点是大家关心的重点。针对一些关键问题,我们采访了项目负责人赵禹光。

Q:为什么要做KOB这个项目?

说来话长,随着公司业务的发展和中台战略的推进,很多大型项目拆分成多个小项目和微服务。我们之前使用Quartz来实现作业调度功能,但随着项目的增多,作业调度任务也分散在许多不同的项目和微服务中。这样不仅不利于作业调度任务的统一管理,也会浪费大量的服务资源,同时也无法实现跨项目间的任务调度。

基于以上思考,我们开发了第一版作业调度系统,又经过了1年多的沉淀,开源了KOB作业调度系统。

Q:为什么后来要选择开源?

带着公司在发展中遇到的作业调度问题,我们调研了很多市场上的产品,发现并没有能很好地解决我们需求的产品,因此我们决定自研。现在经过了1年多的沉淀,把我们的方案和产品以开源的方式回馈给社区,希望可以为作业调度方向提供新的解决方案,让大家共同参与建设。

Q:目前国内有哪些比较好的作业调度系统?KOB跟它们相比又有什么区别?

作业调度系统是每个互联网公司的基础服务,国内常用的有Elastic-job、TBSchedule等开源产品。

首先,它们都基于Quartz实现任务调度,每个项目需要建立相应的配置和存储,有一定的接入成本,且任务调度模块的扩展性较低。而KOB的作业调度组件都是自研的,各种配置由服务端统一管理,接入成本比较低,并且基于KOB做功能定制会更加灵活。

其次,KOB在中心化的实现方案下,保证了每个业务线机器资源的弹性伸缩,同时也实现了任务调度的统一管理和监控,降低了每个项目的管理成本。

再次,KOB实现了管道队列模块,在调度任务较多时,会将任务保留并延迟执行,保证调度任务必然运行,不会因为负载过高而丢失任务。

最后,我们支持对已接入的项目做资源隔离,使得各个项目的接入更加简单,不必考虑其他项目。其他的差异可以查看我们做的竞品分析:KOB竞品分析

Q:我们在架构方面,有哪些创新呢?

除了刚才所说的区别以外,KOB的任务调度机制和任务管理理念也有所不同。

以Quartz为例,Quartz用MySQL的行锁解决任务分配问题。但对于大量短任务的这种情况,每个客户端都会抢占数据库锁,这样就会出现大量的线程等待,对客户端是非常不友好的。而KOB是用ZooKeeper来实现任务调度的,会统一由服务端分配调度任务,预先分配好了执行任务的客户端,避免了客户端抢占数据库锁这样的资源浪费。

Q:KOB目前可以支持那些语言的客户端呢?其他语言想接入KOB会不会成本很高?

目前只有Java版本的客户端,正在规划增加对其他语言的支持。在这里也希望大家加入我们的队伍,一起开发其他语言的客户端。

其他语言的客户端开发也比较容易,因为KOB的架构主要的逻辑在服务端,客户端通过与ZooKeeper通信来实现任务调度。

Q:目前线上的稳定性怎么样?

目前在公司内部,已经接入了数百个线上服务,每天完成几万次的任务调度,调度准确性达99.999%,时间误差在毫秒级,支持失效转移,稳定性是有保证的。

Q:接入了这么多的项目后,相应的运维成本是否会增加呢?

不会的,KOB的服务端是实现了高可用的,服务失败会自动处理,不会耗费运维人力,另外我司的基础监控也比较完善。

目前KOB并不需要专职的运维同学,在服务的承载能力下,任何业务方都可以自由地在平台上进行接入,自行查看任务运行情况。并且每个项目间都是逻辑隔离的,不用担心受到其他业务的影响。

KOB作业调度系统使用了目前市场最主流的技术栈,可靠性、扩展性都很高,而学习成本很低。

Q:想问下KOB作业调度系统的下一步规划是什么?

我们会抓紧推进KOB社区的建设,同社区一起发展,在功能上即将发布跨项目调度功能,正在考虑增加DAG调度等新功能。

Q:最后一个问题,团队有没有其他产品开源的计划?

团队目前有一些其他技术类项目,解决业务中遇到的一些具体的问题,比如帮助线上定位问题、数据一致性组件等,也有开源计划,暂时保密。

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2019-02-20
揭秘贝壳找房作业调度系统KOB
贝壳找房是2018年4月推出的“新居住”服务平台,为消费者提供包括二手房、新房、租赁等全方位的居住服务。

长按扫码 阅读全文