为了回答这个问题,我们需要简单的介绍一下背景:

    如果每个单独的请求被包装到JSON数组中,那意味着我们需要:

    • 解析JSON为数组(包括文档数据,可能非常大)
    • 为每个分片创建一个请求的数组
    • 发送请求到每个分片

    取而代之的,Elasticsearch则是从网络缓冲区中一行一行的直接读取数据。它使用换行符识别和解析action/metadata行,以决定哪些分片来处理这个请求。