Backpressure in Distributed Systems
7 months ago
- #backpressure
- #performance
- #distributed-systems
- 背压(Backpressure)在分布式系统中至关重要,若处理不当会导致OOM错误、消息丢失、吞吐量下降、网络资源浪费、延迟增加以及生产者阻塞等问题。
- 当消息生产速率超过消费速率时,系统不堪重负就会发生背压现象。
- 四种背压处理策略:降低生产者速度、丢弃积压消息、拒绝新消息、以及增加消费者数量。
- 以实时排行榜为例,选择丢弃中间状态消息(而非新消息),因为最终状态比中间状态更重要。
- TCP通过滑动窗口协议等流量控制和拥塞控制机制来处理背压。
- 背压是Kafka、gRPC流式传输和Sidekiq等系统的共性设计主题。