From 51cbd4b9deac4ac2b3b7beb6e8432aa4826993b4 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 5 Feb 2026 03:11:52 +0000 Subject: [PATCH] fix(backend): enable noDelay for relay connector to fix chain failover When using relay connector with noDelay=false (default), connection errors are deferred until first read/write. This prevents the forwarder marker from being called, causing failover to never trigger. Setting nodelay=true ensures connection errors propagate immediately, allowing proper failover behavior when chain targets are unreachable. --- .../src/main/java/com/admin/common/utils/GostUtil.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java b/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java index e681359..95761d0 100644 --- a/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java +++ b/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java @@ -51,6 +51,10 @@ public class GostUtil { JSONObject connector = new JSONObject(); connector.put("type", "relay"); + // 启用 noDelay 以确保连接错误能立即传播,使故障转移正常工作 + JSONObject connectorMetadata = new JSONObject(); + connectorMetadata.put("nodelay", true); + connector.put("metadata", connectorMetadata); Node node_info = node_s.get(chainTunnel.getNodeId()); JSONObject node = new JSONObject();