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

使用dgraph-js的Apollo GraphQL服务是否需每次请求后关闭Client Stub?

Dgraph全局Client Stub是否需要关闭(Apollo服务器场景)

对于持续运行的Apollo GraphQL服务器,不需要主动关闭全局的dgraphStub和dgraphClient,原因如下:

  1. 客户端生命周期设计
    Dgraph的DgraphClientStub和DgraphClient本身就是为长运行服务设计的,内部维护了连接池,复用连接能大幅提升性能。频繁创建和销毁客户端反而会导致连接开销增大,影响服务性能。

  2. 事务资源已正确释放
    你在查询函数里已经通过await txn.discard()正确处理了事务资源——只读事务调用discard()会释放事务相关的临时资源,不会占用全局客户端的连接池资源。这部分逻辑是正确的,不需要额外操作全局客户端。

  3. 仅在优雅停机时需要关闭
    只有当服务器需要优雅终止时(比如收到停机信号),才需要调用dgraphStub.close()来清理底层的网络连接,避免资源泄漏。如果你的Apollo服务器没有实现优雅停机逻辑,或者服务是持续运行的,完全不需要做这个操作。

额外注意事项

  • 保持dgraph-js版本为最新,避免旧版本中可能存在的连接池或资源泄漏问题。
  • 生产环境可以监控Dgraph服务器的连接数指标,确认连接池处于正常复用状态,无需担心未知错误。

内容的提问来源于stack exchange,提问作者Grandma Kisses

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:59:12