首页 > 解决方案 > Flink 的 Elasticsearch sink 中批量刷新操作的优先级是什么?

问题描述

我正在按照这个在 Flink 应用程序中创建一个 Elasticsearch 接收器。如果我提供所有值,我想了解什么是优先级

int FLUSH_MAX_ACTIONS = 10_000;
long FLUSH_INTERVAL_MILLIS = 1_000;
int FLUSH_MAX_SIZE_MB = 1;

esSinkBuilder.setBulkFlushMaxActions(FLUSH_MAX_ACTIONS);
esSinkBuilder.setBulkFlushInterval(FLUSH_INTERVAL_MILLIS);
esSinkBuilder.setBulkFlushMaxSizeMb(FLUSH_MAX_SIZE_MB);
esSinkBuilder.setBulkFlushBackoff(true);

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

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

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

标签: elasticsearchapache-flinkflink-streaming

解决方案


无论首先达到哪个限制都会触发刷新。这是由org.elasticsearch.action.bulk.BulkProcessor.


推荐阅读