架构风格与模式58 条

管道-过滤器架构

数据依次流经多个独立过滤器,过滤器之间通过管道传递数据;适合 ETL、编译器、图像与日志处理等可分解为独立步骤的场景。

过滤器独立处理单元:读取输入、变换、写出输出
管道连接过滤器,可缓冲数据形成背压
变体过滤器可串行、并行或分叉组合

过滤器工程要点

主题做法
幂等同一批数据重跑结果一致,重试不产生重复产物
背压管道缓冲设上限,下游变慢时阻塞或降速上游
错误策略坏数据转旁路队列,其余批次继续处理
可观测每个过滤器输出吞吐、延迟与错误计数
面向流式处理时要定义错误策略:跳过、重试还是整批失败;否则单个脏数据会阻塞整条管道。

易错点

  • 过滤器共享可变状态,并行执行时结果不稳定
  • 管道无缓冲与背压设计,下游变慢导致内存膨胀

数据来源与参考

  • 《软件架构:架构模式、特征及实践指南》(Richards & Ford)
  • 《Enterprise Integration Patterns》(Hohpe & Woolf)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌