知识卡片

数据采集的推拉模型及其取舍

专业/工作 · 1213.b

内容

数据采集有拉取和推送两种模型。拉取模型由中心服务主动请求远端节点发送数据(如 SNMP、Nagios、应用的 /health 端点被轮询),但中心系统需要持续跟踪所有客户端、调度请求、解析返回,这让它天生难以横向扩展。推送模型由客户端主动把数据发往目标位置(定时如 collectd,事件驱动如 syslog 转发),节点只需知道往哪发、不需了解接收端实现,因此在分布式/云环境里更容易水平扩展,也拥有更好的冗余和高可用性。两种模型没有绝对优劣,只是网络设备等场景几乎只能用拉取(SNMP),而云原生分布式架构更适合推送。发散:这本质是”中心化协调 vs 去中心化自治”的取舍在数据采集层面的具体投影,与分布式系统里许多其他设计决策同构。

参考来源

《监控运维实践 原则与策略-2021》第2章《监控设计模式》