隨著企業(yè)規(guī)模擴(kuò)張和業(yè)務(wù)量的急劇增加,作為系統(tǒng)核心的數(shù)據(jù)庫相關(guān)開發(fā)也會經(jīng)歷一個由單一團(tuán)隊(duì)發(fā)展為多團(tuán)隊(duì);由單機(jī)擴(kuò)張到集群;由單數(shù)據(jù)庫發(fā)展為多數(shù)據(jù)庫;由采用單一數(shù)據(jù)庫產(chǎn)品到多種數(shù)據(jù)庫產(chǎn)品并存的過程。伴隨這一過程的是如何管理數(shù)據(jù)庫擴(kuò)展,如何規(guī)范數(shù)據(jù)庫訪問,如何保護(hù)數(shù)據(jù)庫投資,如何應(yīng)對訪問量增加,如何預(yù)防安全問題等一系列挑戰(zhàn)。作為國內(nèi)在線旅游行業(yè)的翹楚,攜程也曾經(jīng)面對同樣困擾。為了應(yīng)對這些挑戰(zhàn),實(shí)現(xiàn)企業(yè)10倍速發(fā)展,攜程開發(fā)了具有自己特色的數(shù)據(jù)庫訪問框架Ctrip DAL。Ctrip DAL支持流行的分庫分表操作,支持Java和C#,支持MySQL和MSSqlServer。使用該框架可以在有效地保護(hù)企業(yè)已有數(shù)據(jù)庫投資的同時,迅速,可靠地為企業(yè)提供數(shù)據(jù)庫訪問層的橫向擴(kuò)展能力。整個框架包括代碼生成器和客戶端。工作模式是使用代碼生成器在線生成代碼,通過DAL客戶端完成數(shù)據(jù)庫操作。生成器具有豐富的向?qū)е敢僮骱唵吻逦瓤梢耘可蓸?biāo)準(zhǔn)DAO,也可以在方法級別定制數(shù)據(jù)庫訪問。客戶端則可以簡單地通過標(biāo)準(zhǔn)的maven方式添加依賴。
通過開源攜程自身使用DAL框架,攜程希望在滿足自身需求的同時,服務(wù)于廣大企業(yè),并繼續(xù)為中國方興未艾的開源運(yùn)動出點(diǎn)力。