代理模式在iLogtail中是如何应用的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 iLogtail 中,最核心的步骤就是保证数据准确地发送到后端服务。在将数据发送到 SLS 场景下,最根本的就是调用 SDK 将打包好的数据发送,整个过程看似简单却蕴含着大智慧。因为后端服务是复杂多变的,往往会存在着这种不确定因素,例如网络不稳定、后端Quota满、鉴权失败、偶尔服务不可用、流控、进程重启等。如果每个数据发送方独立处理直接调用 SLS SDK 进行发送,必然导致大量重复代码,造成代码复杂度增加。因此,iLogtail 引入了 Sender 代理类,增强了直接 SDK 发送的可靠性。数据发送方仅需要调用 Sender::Instance()->Send 即可认为已经完成了数据发送,剩下的复杂场景处理全都交给 Sender 类完成,由 Sender 类保证将数据成功发送到后端系统。