guzz是一套用來(lái)解決ORM、多數(shù)據(jù)源管理、以及通用數(shù)據(jù)計(jì)算的數(shù)據(jù)層框架,為系統(tǒng)在數(shù)據(jù)層的設(shè)計(jì)提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代這2個(gè)東西。
guzz主要功能與特點(diǎn):
- 現(xiàn)代大規(guī)模系統(tǒng)設(shè)計(jì),技術(shù)上吸收了ibatis/hibernate的優(yōu)點(diǎn)
- 支持像hibernate一樣的對(duì)象化持久、映射和方便的增刪改查
- 支持像ibatis一樣,讓dba參與sql設(shè)計(jì)的復(fù)雜數(shù)據(jù)庫(kù)操作和優(yōu)化
- 支持應(yīng)用程序使用大量的數(shù)據(jù)庫(kù)和主從讀寫(xiě)分離
- 支持超越范式的特殊關(guān)聯(lián)、非結(jié)構(gòu)化數(shù)據(jù)等異構(gòu)資源的統(tǒng)一管理
- 支持?jǐn)?shù)據(jù)表在多組機(jī)器間水平分布(Shard),并自動(dòng)維護(hù)多組機(jī)器之間的分布式事務(wù)
- 支持1張表按照業(yè)務(wù)規(guī)則分切成多張小表(Shadow),并支持每張小表?yè)碛凶约禾厥獾膶傩宰侄危–ustom)
- 支持組件化服務(wù)(SOA),構(gòu)建企業(yè)/項(xiàng)目實(shí)施基礎(chǔ)平臺(tái)
- 提供面向?qū)ο蟮臄?shù)據(jù)庫(kù)讀取標(biāo)簽(JSP Taglib),加快頁(yè)面展示層的快速變更、開(kāi)發(fā)與部署
- 支持配置管理服務(wù)器,可以使用一套軟件系統(tǒng)對(duì)所有應(yīng)用程序的配置進(jìn)行統(tǒng)一管理
項(xiàng)目地址:http://code.google.com/p/guzz/
文檔:http://www.guzz.org/wiki/GuzzGuide
1.2.7正式版 更新介紹:
- 支持表分切。允許同一對(duì)象按照業(yè)務(wù)規(guī)則,分別存儲(chǔ)在不同的表中。如新聞評(píng)論:新聞?lì)l道的評(píng)論存放在 tb_c1,娛樂(lè):tb_c2,體育tb_c3,其他:tb_c4,滿足同類在線數(shù)據(jù)的數(shù)據(jù)表平行擴(kuò)展需要。表分切命名為:Shadow Table。
- 支持自定義屬性表。允許分切后的每張小表?yè)碛凶约旱膭?dòng)態(tài)對(duì)象屬性和字段。如購(gòu)物網(wǎng)站中:商品對(duì)象擁有統(tǒng)一的名稱、價(jià)格、編號(hào)、評(píng)分等,但不同的商品可能有自己特殊的屬性,如圖書(shū)擁有ISBN和出版社作者,服裝擁有尺碼、顏色、款式等等。自定義屬性允許程序只定義1個(gè)商品域?qū)ο螅缓笸ㄟ^(guò)自定義屬性和切表,將每1種特定的商品分切到1張自己特殊的表中,這張表同時(shí)擁有商品通用的字段以及這種商品自己的字段,查詢時(shí)可以按照特殊字段直接在數(shù)據(jù)庫(kù)中進(jìn)行關(guān)系查詢。在guzz中,自定義屬性的定義允許存儲(chǔ)到數(shù)據(jù)庫(kù)中,像普通對(duì)象一樣動(dòng)態(tài)生成和管理,不用配置復(fù)雜的xml。自定義屬性命名為:Custom Table。
- 增加并行任務(wù)支持。用于多個(gè)遠(yuǎn)程服務(wù)同步的調(diào)用,降低等待時(shí)間。
- 增加hilo和seqhilo主健生成策略。至此,hibernate支持的常見(jiàn)主健生成策略,guzz都支持了。
- 增加外掛環(huán)境接口。如果在spring中啟動(dòng),允許在guzz中獲取spring定義的bean。
應(yīng)用示例說(shuō)明:
本次更新有很多新概念需要介紹,因此篇幅較長(zhǎng)。詳細(xì)的示例和說(shuō)明請(qǐng)參看:
表分切:
http://www.guzz.org/wiki/GuzzShadow
自定義屬性表(基于表分切):[url]http://www.guzz.org/wiki/GuzzCustomTable [/url]
并行任務(wù)執(zhí)行(基于服務(wù)):
http://www.guzz.org/wiki/GuzzFutureService
主健生成策略:
http://www.guzz.org/wiki/GuzzHbm
下一版本計(jì)劃:
- 數(shù)據(jù)庫(kù)自動(dòng)分庫(kù)支持。允許同一張表,分散在多臺(tái)數(shù)據(jù)庫(kù)中。
- 提供更多對(duì)服務(wù)的支持。
- 探索SASS(軟件就是服務(wù))的數(shù)據(jù)層模型。
- 其他。