使用sse技术实现长链接(四) — 总结与运维
本篇作为系列结尾,总结 SSE 在生产环境的注意点与运维建议,并提供与前面三篇的跳转链接。
何时使用 SSE
- 适用于服务器单向推送、文本为主的场景(通知、日志、进度条等)。
- 如果需要双向实时通讯、频繁二进制交互,应选择 WebSocket。
代理与反向代理要点(nginx)
- 禁用代理缓冲:
proxy_buffering off; - 使用 HTTP/1.1 并允许分块传输:
proxy_http_version 1.1; chunked_transfer_encoding on; - 清理 Connection 头:
proxy_set_header Connection '';
简短示例:
1 | location /sse/ { |
连接数量与伸缩
- 浏览器对单域并发连接有限制(通常 6-8 个),大量客户端场景需要水平扩展与负载均衡。
- 可将推送任务拆分到专门的推送服务或消息中间件(如 Redis Pub/Sub)来降低单点压力。
监控与故障排查
- 监控连接数、平均连接时长、心跳丢失率和错误率。
- 常见问题:代理缓冲导致延迟;防火墙/负载均衡器超时;跨域问题导致连接失败。