批量API执行顺序ElasticSearch

w80xi6nr  于 2023-01-01  发布在  ElasticSearch
关注(0)|答案(2)|浏览(165)

如果我在ElasticSearch的批量API中有请求1、2、3,我能保证它是按顺序执行的吗,即先执行请求1,然后执行请求2,最后执行请求3?

7gyucuyw

7gyucuyw1#

This article表示
每个子请求都是独立执行的,因此一个子请求的失败不会影响其他子请求的成功。
这意味着您不应该依赖于请求的顺序,因为其中一些请求可能根本无法成功完成。
但是,响应包含每个子请求的状态,其顺序与子请求的提交顺序相同。
还要注意,索引的刷新速度仅为1/sec(默认情况下),因此我希望单个子请求不会看到同一批处理中其他操作的更改。

ivqmmu1c

ivqmmu1c2#

阅读源代码后,我们发现,对于同一文档id上的操作,顺序是可以保证的。因为Elasticsearch服务器会先对批量请求进行排序,并按Shard进行分组。然后,分布式请求将发送到这些Shard。一旦Shard收到Shard批量请求,它将逐个执行请求。

相关问题