积极的日志轮换期间的文件串消息排序

时间:2018-03-04 22:52:51

标签: apache-kafka filebeat

我们按以下格式记录大量数据:

{"record_id": "123abc", "version": 1, "status": "old_status", ...}
{"record_id": "123abc", "version": 2, "status": "new_status", ...}

然后我们使用Filebeat将这些日志从服务器发送到Kafka集群。由于日志数据量较小,因此效果很好。消息以与记录到日志文件相同的顺序出现在Kafka中。

现在我们已经达到了需要我们积极轮换日志的日志量,我们看到消息来自Kafka乱序。我认为发生的事情是Filebeat在日志文件旋转时创建一个新的收集器。像这样:

之前:

Filebeat harvester 1 -> log

后:

Filebeat harvester 2 -> log
Filebeat harvester 1 -> log.rotate

使用2台收割机,我认为文件会同时从两个文件发送到Kafka,这会导致Kafka中的乱序消息。 注意:我确认消息已发送到Kafka中的正确分区,因此消息排序问题不是由于日志被发送到单独的分区。

我的问题是:

  1. Filebeat中的消息排序保证是什么,以及它们如何受到日志轮换的影响?
  2. 有解决这个问题的好方法吗?

0 个答案:

没有答案