分散式設計很簡單--guzz分散式切表功能正式釋出

五柳-先生發表於2016-04-07
今天,經過一個多月的線上執行,我們很榮幸的釋出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個層面完成了全面的資料分切支援: 


支援記錄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 

http://www.iteye.com/news/19923-guzz-virtual-db-released

相關文章