LoongCollector通过引用计数和智能指针机制确保配置热加载时数据不丢失:
流水线引用计数:当Processor Runner线程正在处理某条流水线的事件时,会持有该流水线的shared_ptr引用。即使此时配置被删除,流水线对象也不会立即销毁,直到所有正在处理的事件完成。
队列复用策略:配置更新(而非删除)时,新旧流水线可以复用相同的处理队列,旧流水线中已在队列里的事件会被新流水线继续处理。
有序性保证:Input Runner在注销旧配置前,确保最后一批数据已经推入处理队列;新配置注册后从断点继续采集。
发送队列持久性:发送队列中的数据不受配置变更影响,已序列化的请求会继续发送完毕。
优雅停止:输入插件的Stop方法提供
isPipelineRemoving参数,区分是配置更新还是删除,做不同的清理策略。
这些机制协同工作,保证了配置热加载过程中数据的完整性和有序性。




