我深入研究了Flume的SpoolingDirectorySource src,发现它在指定的POLL_DELAY_MS参数之后轮询假脱机目录以生成新事件。然后,这些事件由ReliableSpoolingFileEventReader在单独的线程中处理。
我想知道为什么ReliableSpoolingFileEventReader不使用WatchService API,这是相当低的级别,也是线程安全的。是否有任何特定的设计约束有利于轮询而不是观察者?\
谢谢。
发布于 2014-01-04 04:11:17
一般来说,水槽在成批的事件中效果更好。这是因为每个批处理的文件通道都是fsync。因此,等待一段时间是收集一批事件的一个很好的权衡。
https://stackoverflow.com/questions/20908050
复制相似问题