在iLogtail时代,任意配置变更都会导致端上所有配置的重新加载,造成其它无关配置的采集暂停(对于指标采集会导致掉点)。LoongCollector通过以下机制实现热加载隔离:
- 引用计数管理:每条流水线使用引用计数追踪正在使用的资源,配置变更时只停止和重建目标流水线,不影响其他流水线。
- Input Runner注册/注销机制:输入插件启动时向对应的Input Runner注册配置,停止时注销。变更只涉及目标插件的注册/注销操作。
- 流水线上下文隔离:每条流水线拥有独立的处理队列和发送队列,配置变更时其他流水线的队列不受影响。
- 智能指针保护:使用shared_ptr管理流水线对象,确保正在处理中的事件所引用的流水线不会被提前销毁。
通过这些机制,LoongCollector实现了配置变更时数据完整性和有序性的保障,避免了指标掉点问题。




