ilogtail icon indicating copy to clipboard operation
ilogtail copied to clipboard

refactor process queue manager && update process queue to be config-level resource

Open henryzhx8 opened this issue 9 months ago • 0 comments

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

henryzhx8 avatar May 10 '24 08:05 henryzhx8