阅读更多

27顶
3踩

企业架构

guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。

guzz主要功能与特点:
  • 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
  • 支持像hibernate一样的对象化持久、映射和方便的增删改查
  • 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
  • 支持应用程序使用大量的数据库和主从读写分离
  • 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
  • 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
  • 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
  • 支持组件化服务(SOA),构建企业/项目实施基础平台
  • 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
  • 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://www.guzz.org/wiki/GuzzGuide

1.2.7正式版 更新介绍:

  • 支持表分切。允许同一对象按照业务规则,分别存储在不同的表中。如新闻评论:新闻频道的评论存放在 tb_c1,娱乐:tb_c2,体育tb_c3,其他:tb_c4,满足同类在线数据的数据表平行扩展需要。表分切命名为:Shadow Table。

  • 支持自定义属性表。允许分切后的每张小表拥有自己的动态对象属性和字段。如购物网站中:商品对象拥有统一的名称、价格、编号、评分等,但不同的商品可能有自己特殊的属性,如图书拥有ISBN和出版社作者,服装拥有尺码、颜色、款式等等。自定义属性允许程序只定义1个商品域对象,然后通过自定义属性和切表,将每1种特定的商品分切到1张自己特殊的表中,这张表同时拥有商品通用的字段以及这种商品自己的字段,查询时可以按照特殊字段直接在数据库中进行关系查询。在guzz中,自定义属性的定义允许存储到数据库中,像普通对象一样动态生成和管理,不用配置复杂的xml。自定义属性命名为:Custom Table。

  • 增加并行任务支持。用于多个远程服务同步的调用,降低等待时间。

  • 增加hilo和seqhilo主健生成策略。至此,hibernate支持的常见主健生成策略,guzz都支持了。

  • 增加外挂环境接口。如果在spring中启动,允许在guzz中获取spring定义的bean。
应用示例说明:

本次更新有很多新概念需要介绍,因此篇幅较长。详细的示例和说明请参看:

表分切:http://www.guzz.org/wiki/GuzzShadow

自定义属性表(基于表分切):[url]http://www.guzz.org/wiki/GuzzCustomTable [/url]

并行任务执行(基于服务):http://www.guzz.org/wiki/GuzzFutureService

主健生成策略:http://www.guzz.org/wiki/GuzzHbm

下一版本计划:

  • 数据库自动分库支持。允许同一张表,分散在多台数据库中。
  • 提供更多对服务的支持。
  • 探索SASS(软件就是服务)的数据层模型。
  • 其他
27
3
评论 共 31 条 请登录后发表评论
31 楼 myreligion 2010-04-09 17:21
guzz创建了一个讨论圈子,欢迎感兴趣的朋友加入:http://guzz.group.javaeye.com/
30 楼 bcw104 2010-04-08 20:37
强烈支持国产
29 楼 ithero 2010-04-08 14:43
关注一下,主要是对你们的这个水平分库感兴趣
28 楼 wq13480 2010-04-08 10:32
回来整个小项目试试,用用TAGLIB,不写ACTION
27 楼 caoyangx 2010-04-08 10:28
我看好你
26 楼 optimism_best 2010-04-08 10:13
这么说,真的很强大的,期待
25 楼 wendal 2010-04-08 07:54
支持一下同行,O(∩_∩)O哈哈~
加油,丰富文档,增加demo
24 楼 netwalkerli 2010-04-07 23:06
能否开个技术论坛讨论一下,开个je圈也好
23 楼 myreligion 2010-04-07 16:04
lz_cleaner 写道
这是个很好的东西,就是不知道实际效果如何呀,最近被Hibernate给整惨了。

我说下我们自己使用的效果吧:
1. 框架性能上没有看得出的快慢区别。

2. 以前我们用hibernate较多,一般数据库设计就是一个库,读写全部做。现在在设计时大家脑子里面直接就是分出3个数据库(可能部署在1台mysql上)--业务主库,临时信息库,日志库。然后数据库安装时直接主从安装,主从使用。虽然看起来库复杂了,但程序上没有任何成本代价,基本上已经形成一种设计流程。

3. 编程上,一开始开发人员还是建个spring action类 + 在dao和manager中增加需要的方法 + 修改dispatcher-servlet.xml配置映射 + jsp实现view。但现在很多功能都是直接jsp,用taglib直接读库,基本上后台的读数据库操作页面已经看不到action的影子了。java代码比先前的工程,同样的功能少了大概60%-70%。

4. 我们的系统一般后台功能比较复杂,以往编辑要改点东西大家都很郁闷。现在抵制少了很多,基本上就是改改jsp或者在复制1个新的jsp改改,然后传到服务器上,一大堆集群机器的重启工作都免了,无论是开发还是部署都很省事。和php差不多。

5. 我们是面向网友的web应用,企业系统开发不清楚。希望有帮助。
22 楼 myreligion 2010-04-07 15:49
nextw3 写道
性能如何啊?有没有实际的项目采用该框架的?

只所以搞出这个东西,也是大网站开发逼出来的。

我们有项目在跑,高峰时每天有几千万的动态请求。性能还可以,同样是执行sql然后orm,不会比hibernate/ibatis差,但guzz还允许你不改代码的前提下堆数据库服务器。
21 楼 lemonweirui 2010-04-07 15:32
lz_cleaner 写道
这是个很好的东西,就是不知道实际效果如何呀,最近被Hibernate给整惨了。

确实,驾驭hibernate需要时间和经验。现在果断换iBATIS了。
20 楼 nextw3 2010-04-07 11:53
性能如何啊?有没有实际的项目采用该框架的?
19 楼 蜗牛创业网 2010-04-07 11:27
方向很好,继续
18 楼 myreligion 2010-04-07 09:04
caoyangx 写道
哎,看了一下下,如果能够支持@注解那就太好了。这个xml真的不喜欢配置。

恩,那下一版本提供注释支持吧。
17 楼 netwalkerli 2010-04-06 21:00
不错,希望继续完善,特别是文档,否则这将是推广最大的阻力。
16 楼 rrsy23 2010-04-06 19:16
文档很重要 否则很难推广


商业比技术重要
15 楼 berlou 2010-04-06 18:04
支持JPA不?
14 楼 caoyangx 2010-04-06 17:29
哎,看了一下下,如果能够支持@注解那就太好了。这个xml真的不喜欢配置。
13 楼 myreligion 2010-04-06 16:41
wq13480 写道
这个东西免费不?

免费+开源。
12 楼 myreligion 2010-04-06 16:40
二十一 写道
有实际在使用的项目吗


我们自己的项目都在用。正式版是功能在我们项目上稳定运行后才敢发布出来的,稳定性目前看来还没有出现过问题。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 轻松将一张大表分切到不同的机器中

    NULL 博文链接:https://guzz.iteye.com/blog/883225

  • java中 servlet和jsp的概念及区别

    林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 目录 一了解Servlet的概念二Servlet技术功能三 Servlet技术特点四 Servlet生命周期五servlet工作过程六 Servlet与JSP区别七Servlet代码结构八 Servlet第一个程序 一、了解Servlet的概念

  • JSP - java服务器页面 (page)

    JSP (java服务器页面) 简介     JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。     JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。 作用/功能     响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格

  • servlet与jsp的联系与区别

    jsp与servlet的联系与区别(34赞)  http://blog.csdn.net/kaixinbingju/article/details/9409927JSP是Servlet技术的扩展,Java程序段和HTML可以组合成一个扩展名为.jsp的文件, 本质上是Servlet的简易方式,更强调应用的外表表达。 JSP编译后是"servlet类"。 Servlet和JSP最主要的不同点在于,S...

  • JSP与servlets的区别

    从架构上说,JSP可以被看作是从Servlets高级提炼而作为JAVA Servlet2.1 API的扩展而应用。Servlets和JSP最早都是由Sun Microsystems(升阳公司)开发的。从JSP1.2版本以来,JSP处于Java Community Process(有人译为:JAVA社区组织)开发模式下。JSR-53规定了JSP 1.2和Servlet 2.4的规范,JSR-152规定了JSP 2.0的规范。2006年5月,JSP 2.1的规范作为Java EE5的一部份,在JSR-245中发

  • 浅谈Servlet与JSP

    前言     提高Java Web 开发,不得不说http协议,接下来就说Servlet 和 Jsp 这两个java类。 正文 1、什么是JSP?     JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主...

  • mysql注解查询动态sql_数据层框架guzz1.2.8 正式版发布 支持注解与动态SQL

    guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。 guzz主要功能与特点: 现代...

  • guzz1.2.7 beta3 发布,完成自动分表和自定义属性表

    可以让1个对象自动分切存储到不同的表中,并且允许每个表有自己特殊的字段和属性。 详细介绍:[url]http://guzz.org/wiki/GuzzGuide[/url] 的第14和15节。

  • guzz1.2.7 beta1 发布,支持异步网络服务调用

    假设程序需要跨越网络读取3个服务器数据,按照传统模式,需要1个1个的进行网络阻塞读取,线性执行,操作总时间为3个网络服务需要时间之和。 使用异步服务时,应用依旧顺序的调用3个网络服务,但返回的不是直接...

  • guzz1.2.7 rc1 发布,1个对象映射多张不同的表

    [list][*] [b]支持表分切[/b]。允许同一对象按照业务规则,分别存储在不同的表中。如新闻评论:新闻频道的评论存放在 tb_c1,娱乐:tb_c2,体育tb_c3,其他:tb_c4,满足同类在线数据的数据表平行扩展需要。表分切...

  • guzz1.2.8 beta2发布--支持动态加载在线调试SQL

    guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。 guz...

  • Servlets和JSP开发原则

    Servlet和JSP技术是用Java开发服务器端应用的主要技术,是开发商务应用表示端的标准。Java开发者喜欢使用它有多种原因,其一是对于已经熟悉Java语言的开发者来说这个技术容易学习;其二是Java把“一次编写,到处运行”的理念带入到Web应用中,实现了“一次编写,到处实现”。而且更为重要的是,如果遵循一些良好的设计原则的话,就可以把表示和内容相分离,创造出高质量的、可以复用的、易于维护和修

  • 什么是 jsp,什么是Servlet?jsp 和Servlet 有什么区别?

    jsp 本质上就是一个 Servlet,它是 Servlet 的一种特殊形式(由 SUN 公司推出),每个 jsp 页面都是一个 servlet实例。 Servlet 是由 Java 提供用于开发 web 服务器应用程序的一个组件,运行在服务端,由 servlet 容器管理,用来生成动态内容。一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 ser...

  • 浅谈Servlet和JSP

    用Java构建基于web的应用程序时,Servlet和JSP是两种主要的技术,虽然这两种技术主要目的差不多,但是两者之间还是有着不小的区别。不过在此之前先了解一下Servlet和JSP。 1.Servlet Servlet也叫Java servlet,他是在web或服务器上运行的程序,本质上是一个类。是独立于操作系统平台和网络传输协议的服务器端的Java应用程序。他拥有一个生命周期,包含init()和destroy()方法。 五个抽象方法: void init(ServletConfig confi

  • guzz 1.3.0大版本发布,支持Spring事务

    Guzz Spring事务支持标准Spring事务的所有配置,除了嵌套事务和JTA。嵌套事务Hibernate也不支持,如果需要使用,请按照hack Hibernate的方式使用。事务的配置方法为Spring标准配置方式,只需要将transact...

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

    今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。  对于...

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

    今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。   ...

  • guzz开发jar

    guzz是一套用来进行快速开发和高性能网站设计的java框架,通过ORM、多数据源数据管理、以及通用数据处理,为系统在数据层的设计提供一站式解决方案。用于替代或者补充hibernate或ibatis,并提供更多的大型系统架构...

  • guzz的jar包

    guzz的jar包,工程下直接考过来的,可以直接使用

Global site tag (gtag.js) - Google Analytics