貝殼找房是2018年4月推出的“新居住”服務(wù)平臺,為消費者提供包括二手房、新房、租賃等全方位的居住服務(wù)。隨著公司業(yè)務(wù)的發(fā)展和中臺戰(zhàn)略的推進(jìn),為了管理大量的分布式調(diào)度任務(wù),貝殼找房技術(shù)團(tuán)隊開發(fā)了一套中心化的作業(yè)調(diào)度系統(tǒng)KOB(Ke Job的簡稱),定義了公司的任務(wù)調(diào)度模型,實現(xiàn)了任務(wù)調(diào)度的統(tǒng)一管理和監(jiān)控。
KOB是貝殼找房開發(fā)的分布式作業(yè)調(diào)度系統(tǒng),其架構(gòu)簡介如下:
作為貝殼找房的大型開源項目之一,KOB背后的核心功能和創(chuàng)新點是大家關(guān)心的重點。針對一些關(guān)鍵問題,我們采訪了項目負(fù)責(zé)人趙禹光。
Q:為什么要做KOB這個項目?
說來話長,隨著公司業(yè)務(wù)的發(fā)展和中臺戰(zhàn)略的推進(jìn),很多大型項目拆分成多個小項目和微服務(wù)。我們之前使用Quartz來實現(xiàn)作業(yè)調(diào)度功能,但隨著項目的增多,作業(yè)調(diào)度任務(wù)也分散在許多不同的項目和微服務(wù)中。這樣不僅不利于作業(yè)調(diào)度任務(wù)的統(tǒng)一管理,也會浪費大量的服務(wù)資源,同時也無法實現(xiàn)跨項目間的任務(wù)調(diào)度。
基于以上思考,我們開發(fā)了第一版作業(yè)調(diào)度系統(tǒng),又經(jīng)過了1年多的沉淀,開源了KOB作業(yè)調(diào)度系統(tǒng)。
Q:為什么后來要選擇開源?
帶著公司在發(fā)展中遇到的作業(yè)調(diào)度問題,我們調(diào)研了很多市場上的產(chǎn)品,發(fā)現(xiàn)并沒有能很好地解決我們需求的產(chǎn)品,因此我們決定自研?,F(xiàn)在經(jīng)過了1年多的沉淀,把我們的方案和產(chǎn)品以開源的方式回饋給社區(qū),希望可以為作業(yè)調(diào)度方向提供新的解決方案,讓大家共同參與建設(shè)。
Q:目前國內(nèi)有哪些比較好的作業(yè)調(diào)度系統(tǒng)?KOB跟它們相比又有什么區(qū)別?
作業(yè)調(diào)度系統(tǒng)是每個互聯(lián)網(wǎng)公司的基礎(chǔ)服務(wù),國內(nèi)常用的有Elastic-job、TBSchedule等開源產(chǎn)品。
首先,它們都基于Quartz實現(xiàn)任務(wù)調(diào)度,每個項目需要建立相應(yīng)的配置和存儲,有一定的接入成本,且任務(wù)調(diào)度模塊的擴(kuò)展性較低。而KOB的作業(yè)調(diào)度組件都是自研的,各種配置由服務(wù)端統(tǒng)一管理,接入成本比較低,并且基于KOB做功能定制會更加靈活。
其次,KOB在中心化的實現(xiàn)方案下,保證了每個業(yè)務(wù)線機(jī)器資源的彈性伸縮,同時也實現(xiàn)了任務(wù)調(diào)度的統(tǒng)一管理和監(jiān)控,降低了每個項目的管理成本。
再次,KOB實現(xiàn)了管道隊列模塊,在調(diào)度任務(wù)較多時,會將任務(wù)保留并延遲執(zhí)行,保證調(diào)度任務(wù)必然運(yùn)行,不會因為負(fù)載過高而丟失任務(wù)。
最后,我們支持對已接入的項目做資源隔離,使得各個項目的接入更加簡單,不必考慮其他項目。其他的差異可以查看我們做的競品分析:KOB競品分析
Q:我們在架構(gòu)方面,有哪些創(chuàng)新呢?
除了剛才所說的區(qū)別以外,KOB的任務(wù)調(diào)度機(jī)制和任務(wù)管理理念也有所不同。
以Quartz為例,Quartz用MySQL的行鎖解決任務(wù)分配問題。但對于大量短任務(wù)的這種情況,每個客戶端都會搶占數(shù)據(jù)庫鎖,這樣就會出現(xiàn)大量的線程等待,對客戶端是非常不友好的。而KOB是用ZooKeeper來實現(xiàn)任務(wù)調(diào)度的,會統(tǒng)一由服務(wù)端分配調(diào)度任務(wù),預(yù)先分配好了執(zhí)行任務(wù)的客戶端,避免了客戶端搶占數(shù)據(jù)庫鎖這樣的資源浪費。
Q:KOB目前可以支持那些語言的客戶端呢?其他語言想接入KOB會不會成本很高?
目前只有Java版本的客戶端,正在規(guī)劃增加對其他語言的支持。在這里也希望大家加入我們的隊伍,一起開發(fā)其他語言的客戶端。
其他語言的客戶端開發(fā)也比較容易,因為KOB的架構(gòu)主要的邏輯在服務(wù)端,客戶端通過與ZooKeeper通信來實現(xiàn)任務(wù)調(diào)度。
Q:目前線上的穩(wěn)定性怎么樣?
目前在公司內(nèi)部,已經(jīng)接入了數(shù)百個線上服務(wù),每天完成幾萬次的任務(wù)調(diào)度,調(diào)度準(zhǔn)確性達(dá)99.999%,時間誤差在毫秒級,支持失效轉(zhuǎn)移,穩(wěn)定性是有保證的。
Q:接入了這么多的項目后,相應(yīng)的運(yùn)維成本是否會增加呢?
不會的,KOB的服務(wù)端是實現(xiàn)了高可用的,服務(wù)失敗會自動處理,不會耗費運(yùn)維人力,另外我司的基礎(chǔ)監(jiān)控也比較完善。
目前KOB并不需要專職的運(yùn)維同學(xué),在服務(wù)的承載能力下,任何業(yè)務(wù)方都可以自由地在平臺上進(jìn)行接入,自行查看任務(wù)運(yùn)行情況。并且每個項目間都是邏輯隔離的,不用擔(dān)心受到其他業(yè)務(wù)的影響。
KOB作業(yè)調(diào)度系統(tǒng)使用了目前市場最主流的技術(shù)棧,可靠性、擴(kuò)展性都很高,而學(xué)習(xí)成本很低。
Q:想問下KOB作業(yè)調(diào)度系統(tǒng)的下一步規(guī)劃是什么?
我們會抓緊推進(jìn)KOB社區(qū)的建設(shè),同社區(qū)一起發(fā)展,在功能上即將發(fā)布跨項目調(diào)度功能,正在考慮增加DAG調(diào)度等新功能。
Q:最后一個問題,團(tuán)隊有沒有其他產(chǎn)品開源的計劃?
團(tuán)隊目前有一些其他技術(shù)類項目,解決業(yè)務(wù)中遇到的一些具體的問題,比如幫助線上定位問題、數(shù)據(jù)一致性組件等,也有開源計劃,暫時保密。
- 為什么年輕人不愛換手機(jī)了
- 柔宇科技未履行金額近億元被曝已6個月發(fā)不出工資
- 柔宇科技被曝已6個月發(fā)不出工資 公司回應(yīng)欠薪有補(bǔ)償方案
- 第六座“綠動未來”環(huán)保公益圖書館落地貴州山區(qū)小學(xué)
- 窺見“新紀(jì)元”,2021元宇宙產(chǎn)業(yè)發(fā)展高峰論壇“廣州啟幕”
- 以人為本,景悅科技解讀智慧城市發(fā)展新理念
- 紐迪瑞科技/NDT賦能黑鯊4 Pro游戲手機(jī)打造全新一代屏幕壓感
- 清潔家電新老玩家市場定位清晰,攜手共進(jìn),核心技術(shù)決定未來
- 新思科技與芯耀輝在IP產(chǎn)品領(lǐng)域達(dá)成戰(zhàn)略合作伙伴關(guān)系
- 芯耀輝加速全球化部署,任命原Intel高管出任全球總裁
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。