tRPC-GO hbase 插件
封装 hbase,配合 trpc 使用
hbase client 框架配置
- name: trpc.app.hbase.sevice
callee: trpc.app.hbase.sevice
protocol: hbase
target: hbase://10.0.0.100:2181,10.0.0.101:2181?zookeeperRoot=/root&zookeeperTimeout=1000®ionLookupTimeout=1000®ionReadTimeout=1000&effectiveUser=root
注意事项
gohbase 使用了 logrus 会打一些 debug 日志,hbase.SetLogLevel(log.LevelXXX) 这个用来减少 hbase client 连接过程中的日志
用法
proxy := hbase.NewClientProxy(req.Name)
table := "tableName"
rowKey := "rowKey"
family := make(map[string][]string)
result, err := hbase.ParseGetResult(proxy.Get(ctx, table, rowKey, family))
table := "tableName"
rowKey := "rowKey"
family := make(map[string]map[string][]byte)
putRsp, err := proxy.Put(ctx, req.Table, req.RowKey, family)
family := map[string][]string{
"family": {"qualifier1", "qualifier2"},
}
get, err := hrpc.NewGetStr(ctx, table, rowKey, hrpc.Families(family))
result, err := proxy.RawGet(ctx, get)
values := map[string]map[string][]byte{
"family": {
"qualifier1": []byte("1"),
"qualifier2": []byte("str"),
},
}
put, err := hrpc.NewPutStr(ctx, table, rowKey, values)
result, err := proxy.RawPut(ctx, put)
inc, err := hrpc.NewIncStrSingle(ctx, table, rowKey, "family", "qualifier1", 2)
result, err := proxy.RawInc(ctx, inc)
values := map[string]map[string][]byte{
"family": {
"qualifier1": nil,
},
}
result, err := proxy.Del(ctx, table, rowKey, values)
del, err := hrpc.NewDelStr(ctx, table, rowKey, values)
result, err = proxy.RawDel(ctx, del)