You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Composer Rest Server闲置后无响应问题排查求助

问题原因分析与解决方案

我之前在维护Docker Swarm模式下的Fabric+Composer环境时,也碰到过几乎完全一致的问题,咱们一步步拆解原因和解决办法:

核心原因

1. 闲置连接被自动断开

不管是Composer Rest Server与Fabric节点之间的TCP连接,还是Docker Swarm Overlay网络的闲置连接,都会因为长时间无数据交互被系统或Swarm网络层自动关闭。首次请求时,Rest Server尝试复用已断开的连接就会触发TCP read failed,第二次请求时连接重建过程还没完成导致no response from server,第三次连接重建完成才能正常响应。

2. 链码容器休眠+Peer超时阈值过短

Docker Swarm默认会对闲置的容器进行资源回收(比如暂停低负载容器),当你的业务网络闲置一段时间后,链码容器可能被Swarm休眠。此时发起POST交易,Peer需要唤醒链码容器来模拟提案,但Peer默认的chaincode.executetimeout阈值通常比较短(默认5秒左右),链码唤醒的时间超过了这个阈值,就会触发timeout expired while executing transaction错误——虽然最终交易还是会被提交并生成区块,但Rest Server因为没收到提案模拟的响应,导致前端UI一直卡在加载状态。

针对性解决方案

1. 调整Composer Rest Server的连接存活配置

启动Rest Server时,通过参数强制保持连接活跃,避免闲置断开:

composer-rest-server -c admin@supply-chain-network -p 3000 --pingTimeout 300 --maxIdleTime 600
  • --pingTimeout:设置定期向Fabric节点发送ping的间隔(单位:秒),确保连接不被标记为闲置
  • --maxIdleTime:设置连接的最大闲置时间(单位:秒),超过后才会回收连接

2. 延长Fabric Peer的链码执行超时

修改Peer节点的启动参数,增加链码执行的超时时间,给链码唤醒留足时间:
如果是通过Swarm service部署Peer,更新service时添加参数:

docker service update --args="-peer.chaincode.executetimeout=30s" <your-peer-service-name>

如果是docker-compose部署,在Peer的command字段里追加:

command: peer node start -peer.chaincode.executetimeout=30s

3. 配置Swarm Overlay网络保持TCP连接活跃

创建或修改Swarm的overlay网络,设置TCP保活参数,避免闲置连接被关闭:

docker network create --driver overlay --opt com.docker.network.driver.overlay.default_ulimit=tcp_keepalive_time=300 --opt com.docker.network.driver.overlay.default_ulimit=tcp_keepalive_intvl=60 --opt com.docker.network.driver.overlay.default_ulimit=tcp_keepalive_probes=10 fabric-overlay
  • tcp_keepalive_time:TCP连接闲置多久后开始发送保活包(秒)
  • tcp_keepalive_intvl:保活包的发送间隔(秒)
  • tcp_keepalive_probes:发送多少个保活包没响应才断开连接

4. 禁止Swarm休眠链码容器

给链码容器配置资源预留,让Swarm不会因为闲置回收其资源:
在链码的Swarm service部署配置里添加:

deploy:
  resources:
    reservations:
      cpus: '0.1'
      memory: 128M

这样Swarm会认为该容器需要持续占用资源,不会轻易休眠它。

内容的提问来源于stack exchange,提问作者Apoorv Chandurkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:57:22