ilogtail
ilogtail copied to clipboard
refactor process queue manager && update process queue to be config-level resource
- 重构处理队列
a. 新增
FeedbackQueue<T>
模版类,作为处理队列和发送队列(待重构)的基类; b. 新增ProcessQueue
类,其包含若干下游的发送队列(mDownStreamQueues
)和若干上游反馈接口(mUpStreamFeedbacks
)。- 这里使用“若干”而非“一个”主要是为了远期可扩展考虑,即一条流水线支持多输入和多输出。现阶段“若干”就是“一个”。
- 上游反馈接口比较抽象,是输入插件根据需要定义的,由
InputFeedbackInterfaceRegistry
类统一管理。对于文件和stdout采集来说,反馈接口就是BlockedEventManager
类。
- 重构处理队列管理类,新增
ProcessQueueManager
类,负责创建和管理所有流水线的处理队列(不含exactly once队列,它们由ExactlyOnceQueueManager
类负责),同时负责队列的push和pop(代理exactly once队列)。 - 新增
ExactlyOnceQueueManager
类,负责创建和管理所有的exactly once处理和发送队列。 - 新增
QueueKeyManager
类,负责配置名和队列key之间的映射管理,队列除创建时均使用key来索引,提升查询效率。 - 处理队列调整为1个流水线1个,exactly once流水线不生成配置级的处理队列。
- 处理队列支持指定优先级。