GUDP是一个统一访问代理.目前支持mysql. Redis是实验特性,仅实现部分. 后面会添加更多数据源支持. 开发人员只需要使用GRPC调用本服务,无需关心数据库连接和查询细节.满足大部分的数据服务需求,并且追求简单,轻量化以及扩展性.使用GO语言编码.
MYSQL功能比较完善,目前有如下特性:
缺点: 为了做到简单易用对业务友好,GUDP从数据库取出数据会封装成业务层容易获取的结构。性能会有所消耗。但一般业务层使用数据库,数据量不会很大,查询延时多个几毫秒对业务访问几乎没有影响。如果查询结果集很多,如某统计程序需要一次查询输出10万条数据之类的需求,GUDP就不适合。
1000条数据的时候,几乎感觉不到延迟; 10万条数据GPS记录,直接访问数据库花了2.2秒,用GUDP需要3.5秒。 后面会补上性能测试报告。
REDIS是实验性功能:
客户端通过GRPC向GUDP传递sql_id和参数。参数是key-value形式:
表示调用了下面这句GUDP的SQL配置语句和替换相应参数:
找到db_t_account_r这个, 并执行这个SQL
means:
Connect To: 127.0.0.1 4000
Execute This Sql:
SELECT user_id, user_name, type FROM t_user WHERE user_id>=100 ORDER BY user_id ASC LIMIT 10
And Return Result.
Mysql Read Write Spilting
MYSQL读写分离实现。
Mysql Sharding Example
MYSQL数据库分片实现。
Mysql Multi DB Transcation
MYSQL多数据库事务实现。
Mysql Test Client
mysql db configure
mysql sql configure
Test DB Create
Step 1:
go get -u github.com/toniz/gudp
Step 2: Install Mysql and Run mysql Service on Port: 4000
Step 3:
mysql -u root -h 127.0.0.1 -P 4000 < $GOPATH/src/github.com/toniz/gudp/doc/mysqldata.sql
Step 4:
export GRPC_GO_LOG_SEVERITY_LEVEL=INFO
nohup gudp &
cd $GOPATH/src/github.com/toniz/gudp/client
go build mysqlcli.go
./mysqlcli
Redis Test Client
Redis Srv Configure
cd $GOPATH/src/github.com/toniz/gudp/client
go build rediscli.go
./rediscli
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。