本项目集成到 gosuit中,不再更新。
简介
GUDP是一个统一访问代理.目前支持mysql. Redis是实验特性,仅实现部分. 后面会添加更多数据源支持.
开发人员只需要使用GRPC调用本服务,无需关心数据库连接和查询细节.满足大部分的数据服务需求,并且追求简单,轻量化以及扩展性.使用GO语言编码.
GUDP特性:
使得数据访问统一化
链接收敛.业务层几千个数据请求链接,如果直接访问数据库,会造成数据库资源浪费的问题.通过GUDP后,到数据库的链接个数能达到最优利用.
努力使其具备更好的扩展性,支持更多的数据源.
水平扩容,业务无关。
MYSQL功能比较完善,目前有如下特性:
简单易用,修改查询逻辑不需要改业务代码或者切换数据库,只需要改动GUDP的SQL配置语句.
读写分离
安全,业务层不会接触到数据源.通过参数替换达到数据查询效果,屏蔽了注入SQL的途径.
支持数据库分片.
支持多数据库事务提交.
缺点:
为了做到简单易用对业务友好,GUDP从数据库取出数据会封装成业务层容易获取的结构。性能会有所消耗。但一般业务层使用数据库,数据量不会很大,查询延时多个几毫秒对业务访问几乎没有影响。如果查询结果集很多,如某统计程序需要一次查询输出10万条数据之类的需求,GUDP就不适合。
1000条数据的时候,几乎感觉不到延迟;
10万条数据GPS记录,直接访问数据库花了2.2秒,用GUDP需要3.5秒。
后面会补上性能测试报告。
REDIS是实验性功能:
简单易用,配置好配置文件就可访问redis.业务层不无关系链接细节.<