Flink的Elasticsearch接收器中的批量刷新操作的优先级是什么?

问题描述

我正在遵循this在Flink应用程序中创建Elasticsearch接收器。我想了解如果我提供所有值,例如

    public static void Main()
    {
        var values = new[]
        {
            false,false,false
        };
        var length = values.Length;
        var counter = 0;
        var prevIoUs = 0;
        var current = 0;

        while (counter < 25) // or any condition
        {
            current = counter++ % length;
            values[prevIoUs] = false;
            values[current] = true;
            prevIoUs = current;

            Console.WriteLine($"Count: {counter}\tIndex: {current}\t{string.Join(",\t",values)}");
        }
    }

在这种情况下,我指定要冲洗

  1. 如果时间间隔超过1秒
  2. 如果缓冲区大小为1MB
  3. 如果缓冲区中有10,000条记录在等待中

当我一次指定所有三个时,结果是什么,哪一个优先?

解决方法

首先达到哪个限制将触发冲洗。这是由org.elasticsearch.action.bulk.BulkProcessor处理的。