一、现象
从搜索引擎召回直播间id list后,去hbase批量查询id属性字段,未返回结果。(同事下班路上,帮忙排查)
二、思考
调用者和提供者都未打印详细请求参数,是参数问题?内部处理逻辑问题?鉴于hbase通用查询服务已运行非常久,大概率是请求参数有问题。
三、解决
服务调用者watch
watch xxx.hbase.service.api.HBaseQueryService batchQuery "{params,returnObj}" -x 3
![v2-938a1de5c8856224ac655685ab00cb06_b.jpg](https://img-blog.csdnimg.cn/img_convert/56dbb5f66c084a62ac698304b88f6abc.png)
服务提供者watch
watch xxx.hbase.AsynRecHbaseDao getDataBatch "{params,returnObj}" -x 3
![v2-239cf1dda24a724062c1e96cd10e43f8_b.jpg](https://img-blog.csdnimg.cn/img_convert/af0372a10cfb960ed153165c7657beb5.png)
明显看到参数不一致!结论是:hbase通用查询服务会帮我们处理“预切片”(为了使表数据在region均匀,在rowkey加上发散因子,比如1#),调用者自己加了一次“预切片”,总共2次,导致查不到hbase数据,长得很像,不好发现。