如何确保流畅的BufferedOutput写入(块)处理事件一次

时间:2016-05-24 04:11:12

标签: fluentd

在BufferedOutput插件中, 如果write(chunk)抛出异常或流利的进程在处理块时死亡,根据文档,它说块仍然会留在队列中但这意味着崩溃之前处理的事件/记录将再次被处理精通重启后?

如果是这种情况,write(chunk)必须是原子的"正好一次处理"。那么,在filterstream-method部分编写的here方法是否适用于此目的?即MultiEventStream中的事件是否以原子方式处理?

1 个答案:

答案 0 :(得分:0)

如果在该方法中发生任何错误,有时可能会重试

write(chunk)。所以这个方法应该写成幂等的。

我无法理解你在做什么。每种方法都是为这些目的而设计的:

    过滤器中的
  • filter_stream:选择/拒绝事件,或丰富/削减记录字段(每个事件一次,不重试)
  • 输出中的
  • format:将事件格式化为字符串/二进制,然后将其写入块(每个事件一次,不重试)
  • 输出中的
  • write:从块读取数据并将其写入/发送到目标(每个块至少一次,重试错误)