这个问题是Java栈的一个同事提出来的,按道理游标本身多线程处理完全可以的啊,毕竟感觉像是Redis scan。
后来深入了解了下,发现对于多线程来说,其实官方有更优雅的姿势对游标scroll进行处理的,随手总结如下:
Sliced scroll
示例代码:
GET /my-index-000001/_search?scroll=1m
{
"slice": {
"id": 0,
"max": 2
},
"query": {
"match": {
"message": "foo"
}
}
}
GET /my-index-000001/_search?scroll=1m
{
"slice": {
"id": 1,
"max": 2
},
"query": {
"match": {
"message": "foo"
}
}
}
参考资料
Simultaneously executing multiple queries on Scroll API to fetch Large Data
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言