
我从filebeat-harvester中学到什么
Filebeat 是 Elastic Stack 里的日志采集器,Harvester 模块负责逐行读文件。我读它的源码本来是想看采集逻辑,结果最大的收获是它怎么管理一组相互依赖的协程的生命周期。这篇就围绕四个问题来拆: 如何为主协程添加超时控制? 主协程结束时如何优雅关闭其他协程? 如何控制多个协程的关闭顺序? 如何从外部安全地关闭任务并等待清理完成? ...

Filebeat 是 Elastic Stack 里的日志采集器,Harvester 模块负责逐行读文件。我读它的源码本来是想看采集逻辑,结果最大的收获是它怎么管理一组相互依赖的协程的生命周期。这篇就围绕四个问题来拆: 如何为主协程添加超时控制? 主协程结束时如何优雅关闭其他协程? 如何控制多个协程的关闭顺序? 如何从外部安全地关闭任务并等待清理完成? ...

Filebeat 是 Elastic Stack 里那个轻量级的日志采集器。最近读它的源码,发现几处设计模式用得很顺手,记一下:Registry + LazyInit、Observer、Strategy 和 Object Pool 这四个,正好对应插件化、解耦、可配置和性能优化几个常见诉求。 ...