攜程開源數據庫訪問框架 Ctrip DAL
隨著企業規模擴張和業務量的急劇增加,作為系統核心的數據庫相關開發也會經歷一個由單一團隊發展為多團隊;由單機擴張到集群;由單數據庫發展為多數據庫;由采用單一數據庫產品到多種數據庫產品并存的過程。
伴隨這一過程的是如何管理數據庫擴展,如何規范數據庫訪問,如何保護數據庫投資,如何應對訪問量增加,如何預防安全問題等一系列挑戰。
作為國內在線旅游行業的翹楚,攜程也曾經面對同樣困擾。為了應對這些挑戰,實現企業10倍速發展,攜程開發了具有自己特色的數據庫訪問框架Ctrip DAL。
Ctrip DAL支持流行的分庫分表操作,支持Java和C#,支持Mysql和MSSqlServer。使用該框架可以在有效地保護企業已有數據庫投資的同時,迅速,可靠地為企業提供數據庫訪問層的橫向擴展能力。
整個框架包括代碼生成器和客戶端。工作模式是使用代碼生成器在線生成代碼,通過DAL客戶端完成數據庫操作。生成器具有豐富的向導指引,操作簡單清晰,既可以批量生成標準DAO,也可以在方法級別 定 制數據庫訪問。客戶端則可以簡單地通過標準的maven方式添加依賴。
Ctrip DAL與一般數據庫框架最大的不同是從企業跨部門的角度,統一管理數據庫相關資源。 通過部署代碼生成器,企業可以做到有效的管理全公司的DAL開發團隊,明確數據庫歸屬和定制數據庫訪問。通過代碼生成器生成的標準DAO代碼與客戶端配合使用,可以大幅提高工作效率,保證代碼質量。解決了業內常見的伴隨業務成長而帶來的系統維護困難,開發效率低下,代碼風格五花八門,代碼質量參差不齊等痛點問題。
為了適應不同公司的實際情況,DAL定義了豐富的擴展接口,覆蓋了從數據源管理,數據庫映射,連接串讀取到自定義訪問方式等等方方面面的功能。同時為了方便系統監控還內置了系統狀態,日志和統計模塊。
Ctrip DAL由攜程技術中心框架部DAL團隊開發,歷經3年不斷打磨,在長期的實際使用中吸收了大量用戶反饋。目前攜程超過117個獨立DAL團隊通過代碼生成器管理數據庫和創建DAO。2000多個應用在使用DAL框架,占攜程所有數據庫應用總數超過90%。
本次開源的產品包括代碼生成器和Java客戶端,C#客戶端也將近期開源。DAL各個組件的安裝和使用都有詳細的文檔說明,開箱即用。
通過開源攜程自身使用DAL框架,攜程希望在滿足自身需求的同時,服務于廣大企業,并繼續為中國方興未艾的開源運動出點力。
來自:http://www.chinastor.org/gdcc/8825.html