paulwong

          分布式設計很簡單--guzz分布式切表功能正式發布(轉)

          今天,經過一個多月的線上運行,我們很榮幸的發布guzz 1.2.9分布式切表功能。分布式切表是指將一張大表分切成N張小表,并將這些小表儲存到不同的數據庫(機器)中,從而實現數據的分散存儲和分散查詢。

          對于大型系統和數據規模較大的系統,分布式切表提供了非常好的解決方案,有效的解決了大數據分散存儲、查詢、歸檔和維護等諸多的問題。但市面上流行的數據層框架,對于此特性幾乎無人涉及。guzz首次將這種技術做成了通用框架級別,更全面的提供“一站式數據層解決方案”。

          guzz 1.2.9 build20110209 更新介紹:

          分布式切表:

          guzz特性。

          分布式切表以guzz的Shadow Table為基礎。在Shadow Table的基礎上,通過配置完成,應用不需要修改現有代碼即可完成小表的分布式存儲。
          具體請參看:http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans

          至此,guzz已經通過6個層面完成了全面的數據分切支持:


          數據表比較多,總體較大,將表分到不同的數據庫組中。
          第3章dbgroup:http://code.google.com/p/guzz/wiki/TutorialGuzzXml?wl=zh-Hans

          某些表太大,將大表分成N張小表。
          第15章ShadowTable:http://code.google.com/p/guzz/wiki/TutorialShadowTable?wl=zh-Hans

          業務比較特殊,每張小表可能包含自己的特性字段。
          第16章CustomTable:http://code.google.com/p/guzz/wiki/TutorialCustomTable?wl=zh-Hans

          分成小表后,小表太多,或在單庫中總量太大,將小表分散到不同的數據庫中。
          第17章VirtualDB:http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans

          表中的某些字段太大,或者有特殊操作要求,將這些字段存到別的地方。
          第11章自定義加載屬性:http://code.google.com/p/guzz/wiki/TutorialLazyLoad?wl=zh-Hans

          訪問量的確太高,使用guzz原生支持的讀寫分離,部署更多讀數據庫。

          支持記錄SQL執行時間:

          在打印執行的SQL和SQL參數的同時,通過 調試服務(DebugService) 兩個新的參數允許打印出sql執行所花費的時間,并且允許控制只打印執行時間超過一定時長的sql語句。時間單位為納秒。

          具體請參看:http://code.google.com/p/guzz/wiki/AppendCoreService?wl=zh-Hans

          支持hbm.xml的package屬性:

          支持配置hbm.xml的類名時,指定package。用于支持某些hibernate工具自動生成的配置文件。

          其他:

          1. 更改LogService為InsertQueueService;

          2. 修復了幾個bug。

          什么是guzz?

          guzz是一套用來解決ORM、多數據源管理、以及通用數據計算的數據層框架,為系統在數據層的設計提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大補充和延伸,并可以取代這2個東西。

          guzz主要功能與特點:

          現代大規模系統設計,技術上吸收了ibatis/hibernate的優點
          對于大部分場景,支持像hibernate一樣的對象持久、映射和方便的增刪改查,提高開發效率
          對于復雜場景,支持像ibatis一樣,讓DBA參與SQL設計的復雜數據庫操作和優化,以及SQL在線調試
          更簡潔、更好用、更容易控制的批操作接口
          支持在線加載與調試SQL。按照應用策略,從文件/數據庫/Web Service等途徑,動態提取與使用SQL語句(Dynamic SQL)
          支持應用程序使用大量的數據庫和主從讀寫分離
          支持數據庫表在多組機器間水平分布(Shard),并自動維護多組機器之間的分布式事務
          支持1張表按照業務規則分切成多張小表(Shadow),并支持每張小表擁有自己特殊的屬性字段(Custom)
          支持1張大表分切后的小表,分布到不同的數據庫中(VirtualDB)
          支持超越范式的特殊關聯、非結構化數據等異構資源POJO模式的統一讀取
          支持組件化服務(SOA)和服務相互依賴,構建企業/項目實施基礎平臺
          提供面向對象的數據庫讀取標簽(JSP Taglib),加快頁面展示層的快速變更、開發與部署
          支持配置管理服務器,可以使用一套軟件系統對所有應用程序的配置進行統一管理
          項目地址:http://code.google.com/p/guzz/
          文檔:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
          下載:http://code.google.com/p/guzz/downloads/list

          posted on 2011-02-11 21:13 paulwong 閱讀(338) 評論(0)  編輯  收藏 所屬分類: J2EE

          主站蜘蛛池模板: 象州县| 玉林市| 扬州市| 长丰县| 西乌珠穆沁旗| 芒康县| 平顶山市| 杨浦区| 昌黎县| 佛冈县| 贵定县| 泗洪县| 京山县| 枝江市| 双峰县| 云梦县| 博兴县| 青州市| 光山县| 沈丘县| 宁安市| 射阳县| 交口县| 满洲里市| 磐石市| 湖州市| 富蕴县| 县级市| 获嘉县| 敖汉旗| 耒阳市| 彰武县| 乡城县| 云林县| 忻城县| 镇康县| 伊吾县| 布尔津县| 卢氏县| 新建县| 佛冈县|