iLogtail 进程由两部分组成:C++ 编写的主体二进制进程(提供管控、文件采集、C++ 加速处理、SLS 发送等功能)和 Golang 编写的插件部分(libPluginBase.so,实现处理能力扩展和上下游生态支持)。在 SLS 发送场景中,主要的发送逻辑在 C++ 的 Sender.cpp 中,提供了完善的异常处理、重试、反压等可靠性增强能力。Go Pipeline 中的 SlsFlusher 也需要将数据发送到 SLS,但如果在 Go 侧重新实现相同逻辑会造成代码冗余。因此 Go SlsFlusher 将处理后的数据转发到 C++ 部分完成最终发送。由于跨语言场景存在接口不兼容的问题,iLogtail 引入了 libPluginAdaptor.so 作为适配器层,实现 Golang 发送接口与 C++ 发送接口之间的衔接,使两种语言的组件能够协同工作。




