构建用于消费 stream 数据的客户端
客户端设计
- 建立与过滤 stream endpoint 的 HTTPS 流式连接。
- 异步向过滤 stream 规则 endpoint 发送 POST 请求,以在 stream 中添加和删除规则。
- 处理低数据量——保持流式连接,检测 Post 对象和保活信号。
- 处理高数据量——使用异步流程将 stream 的摄取与后续处理解耦,并确保客户端缓冲区定期刷新。
- 在客户端管理用量消耗的跟踪。
- 识别 stream 断开,评估原因并自动重新连接到 stream。
连接到流式 endpoint
数据消费
- 字段以任意顺序出现
- 意外或缺失的字段
- 未排序的 Posts
- 重复消息
- 在任何时间通过 stream 下发的新的任意消息类型
缓冲
- 确保你的客户端以足够快的速度读取 stream。通常在读取 stream 时不应进行实际的处理工作;应先读取 stream,再将处理工作交由其他线程/进程/数据存储异步执行。
- 确保你的数据中心具备足够的入站带宽,以应对大规模的持续数据量以及显著更大的突发峰值(例如正常量的 5–10 倍)。对于 过滤的流,你这端所需的流量和相应带宽完全取决于你的规则匹配到了哪些 Posts。