分布式设计很简单--guzz分布式切表功能正式发布

来源:互联网 发布:什么叫编程语言 编辑:程序博客网 时间:2024/05/30 23:14
今天,经过一个多月的线上运行,我们很荣幸的发布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 

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

0 0
原创粉丝点击