diff --git a/docs/operations/go-vehicle-gateway-verification-result-2026-07-01.md b/docs/operations/go-vehicle-gateway-verification-result-2026-07-01.md index 7c1d58aa..1c766bb8 100644 --- a/docs/operations/go-vehicle-gateway-verification-result-2026-07-01.md +++ b/docs/operations/go-vehicle-gateway-verification-result-2026-07-01.md @@ -832,3 +832,57 @@ protocols=["JT808"] - `deploy/systemd/lingniu-go-history-writer.service` - `deploy/systemd/lingniu-go-stat-writer.service` - `deploy/systemd/lingniu-go-realtime-api.service` + +## 2026-07-02 00:04 宇通 MQTT EOF 诊断 + +现象: + +Go 原生部署后,`lingniu-go-gateway` 日志中出现多次: + +```text +mqtt connection lost error=EOF +mqtt connection lost error=write: broken pipe +mqtt subscribed topic=/ytforward/shln/+ qos=1 +``` + +10 分钟窗口统计: + +```text +mqtt subscribed = 33 +mqtt connection lost = 32 +``` + +对照旧 Java `yutong-mqtt-app` 历史日志,停止前也存在同类行为: + +```text +mqtt endpoint [yutong] received topic=/ytforward/shln/1 bytes=574 +mqtt endpoint [yutong] connection lost +Caused by: java.io.EOFException +mqtt endpoint [yutong] re-subscribed topic=/ytforward/shln/+ qos=1 +mqtt endpoint [yutong] received topic=/ytforward/shln/3 bytes=586 +``` + +判断: + +- EOF/短连接不是 Go TLS 支持或 systemd 原生部署新引入的问题。 +- 旧 Java 和新 Go 都表现为:订阅、收到数据、broker 断开、自动重连。 +- 当前链路可持续收到宇通 MQTT 数据并写入 TDengine RAW。 + +复验: + +```text +GET /api/history/raw-frames?protocol=YUTONG_MQTT&limit=1 + +total=1 +protocol=YUTONG_MQTT +vin=LMRKH9ACXR1004094 +parse_status=OK +parsed_json_len=1080 +fields_json_len=115 +``` + +运维建议: + +- 单条 EOF 不作为不可用判断。 +- 以 `YUTONG_MQTT` RAW 入库增长、最近成功 `mqtt subscribed` 时间、服务 `systemctl is-active` 作为可用性判断。 +- 如果 EOF 频率继续升高且 RAW 不再增长,再联系宇通侧确认 broker 长连接策略、同一 clientId 并发限制或网络出口策略。