天天看點

攜程開源資料庫通路架構 Ctrip DAL

随着企業規模擴張和業務量的急劇增加,作為系統核心的資料庫相關開發也會經曆一個由單一團隊發展為多團隊;由單機擴張到叢集;由單資料庫發展為多資料庫;由采用單一資料庫産品到多種資料庫産品并存的過程。

伴随這一過程的是如何管理資料庫擴充,如何規範資料庫通路,如何保護資料庫投資,如何應對通路量增加,如何預防安全問題等一系列挑戰。

作為國内線上旅遊行業的翹楚,攜程也曾經面對同樣困擾。為了應對這些挑戰,實作企業10倍速發展,攜程開發了具有自己特色的資料庫通路架構ctrip dal。

ctrip dal支援流行的分庫分表操作,支援java和c#,支援mysql和mssqlserver。使用該架構可以在有效地保護企業已有資料庫投資的同時,迅速,可靠地為企業提供資料庫通路層的橫向擴充能力。

整個架構包括代碼生成器和用戶端。工作模式是使用代碼生成器線上生成代碼,通過dal用戶端完成資料庫操作。生成器具有豐富的向導指引,操作簡單清晰,既可以批量生成标準dao,也可以在方法級别 定 制資料庫通路。用戶端則可以簡單地通過标準的maven方式添加依賴。

攜程開源資料庫通路架構 Ctrip DAL

ctrip dal與一般資料庫架構最大的不同是從企業跨部門的角度,統一管理資料庫相關資源。 通過部署代碼生成器,企業可以做到有效的管理全公司的dal開發團隊,明确資料庫歸屬和定制資料庫通路。通過代碼生成器生成的标準dao代碼與用戶端配合使用,可以大幅提高工作效率,保證代碼品質。解決了業内常見的伴随業務成長而帶來的系統維護困難,開發效率低下,代碼風格五花八門,代碼品質參差不齊等痛點問題。

攜程開源資料庫通路架構 Ctrip DAL

為了适應不同公司的實際情況,dal定義了豐富的擴充接口,覆寫了從資料源管理,資料庫映射,連接配接串讀取到自定義通路方式等等方方面面的功能。同時為了友善系統監控還内置了系統狀态,日志和統計子產品。

ctrip dal由攜程技術中心架構部dal團隊開發,曆經3年不斷打磨,在長期的實際使用中吸收了大量使用者回報。目前攜程超過117個獨立dal團隊通過代碼生成器管理資料庫和建立dao。2000多個應用在使用dal架構,占攜程所有資料庫應用總數超過90%。

本次開源的産品包括代碼生成器和java用戶端,c#用戶端也将近期開源。dal各個元件的安裝和使用都有詳細的文檔說明,開箱即用。

通過開源攜程自身使用dal架構,攜程希望在滿足自身需求的同時,服務于廣大企業,并繼續為中國方興未艾的開源運動出點力。