代理模式在 iLogtail 中主要体现在 Sender 类的设计上。数据发送到 SLS 后端需要处理网络不稳定、后端 Quota 满、鉴权失败、服务不可用、流控、进程重启等复杂场景。iLogtail 引入 Sender 代理类封装了所有发送可靠性增强逻辑(异常处理、重试、反压等),数据发送方仅需调用 Sender::Instance()->Send 即可,复杂的异常处理全部由 Sender 代理完成,避免了每个发送方独立处理导致的大量重复代码。桥接模式则体现在 flusher_http 插件的设计上。使用 flusher_http 发送数据到不同后端系统时,请求加签算法可能因平台而异。iLogtail 通过 extensions 机制将 flusher_http 插件的实现与具体的发送策略分离,实现了 Authenticator、FlushInterceptor 和 RequestInterceptors 的可扩展性,使得两个维度可以独立演进。




