词条 | guzz |
释义 | 简介什么是guzz?guzz是一套用来进行快速开发和高性能网站设计的java框架,通过ORM、多数据源数据管理、以及通用数据处理,为系统在数据层的设计提供一站式解决方案。用于替代或者补充hibernate或ibatis,并提供更多的大型系统架构设计支持。 主要功能与特点guzz的目标是使得大型化网站设计更加简单,团队分工更加明确,框架在使用时更少出问题。主要功能: 1. 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点 2. 支持像hibernate一样的对象化持久、映射和方便的增删改查 3. 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化 4. 支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL) 5. 支持应用程序使用大量的数据库和主从读写分离 6. 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理 7. 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务 8. 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom) 9. 支持组件化服务(SOA),构建企业/项目实施基础平台 10. 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署 11. 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理 功能设计理念ORMguzz的ORM功能参考ibatis和hibernate的设计而来,同时具备ibatis的复杂查询在xml中配置以及简单的CRUD类似hibernate全部对象化管理的特点,适用于大部分数据库操作比较简单(关心进度和技术门槛),而某些性能攸关 sql需要单独维护和调优的项目(关心性能)。 多数据源管理多数据源管理是指guzz可以同时管理多组数据库,在执行查询时根据要查询的对象,自动分配到正确的数据库机器组执行查询操作。每一组可能包含主从,guzz自动分配主从库的操作。这样做到的效果是:在数据库设计时表的存储位置和主从设计完全对开发人员透明;并在以后需要扩展时,可以按照表将数据库分散到多组机器上,并行扩展。 多数据源管理还包括对异构数据的统一管理,如一些对象的某些属性并不保存在数据库里,如基于某种考虑需要先验证在读取或先查缓存再读数据库等。对于这种另类的方式,往往开发人员都是遇到一个特殊代码处理一个,非常混乱;而guzz可以通过自定义属性加载进行统一管理,在普通开发人员看来,并不需要了解数据的具体存储和读取过程。使用这些异构来源数据,就像使用普通的pojo一样简单。这类场景尤其适合于后台开发与前端页面设计分离的开发团队,对前端提供的接口越简单越统一,实施成本就越低(如产品部门与实施团队),对后端产品的侵入也越低。 通用数据处理guzz将某些通用的数据和处理模型定义为服务(Service),如用户登录与认证、 Session 管理、IP地址到地理位置的映射、通过字符获取验证码图片等。这些服务包括数据和数据的运算处理,这些数据和数据运算guzz当作一类特殊的数据进行管理,用于多个项目之间实现共享。这些服务合在一起可以构成企业或项目的基础平台,越积累越多,guzz通过对这些服务的重复利用大幅度降低重复开发成本。 综述guzz并不仅仅是提供一种ORM映射,而是提供一套完整的数据层架构,用于解决项目中可能遇到的各种数据类型和数据处理策略,统一数据接口,简化项目架构设计。guzz提供的可配置的多数据源管理方式,每个大型系统都有自己的实现策略;guzz抽象出这些,对于新项目就不用再摸索了,尤其是多数据库组和主从分离更是可以为系统提供面相未来的支持。 项目应用效果我说下我们自己使用的效果吧: 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应用,企业系统开发不清楚。希望有帮助。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。