【发布时间】:2022-01-16 12:23:46
【问题描述】:
据我了解,请在此处阅读 net/rpc 包文档 https://pkg.go.dev/net/rpc@go1.17.5 每次客户端对服务器进行 rpc 调用时,都会建立一个新连接。如何实现每个新客户端打开一个新连接、使其保持活动状态并仅使用 TPC(即不使用 HTTP)调用 RPC 方法?
【问题讨论】:
-
为什么你认为每次调用都会调用一个新的连接?
-
@JimB 阅读文档后。我还没有看到任何关于保持连接等的内容。
-
“一个希望使用该服务的客户端建立一个连接,然后在连接上调用
NewClient”,一个客户端基于单个连接 -
是的,远程调用后会发生什么?我猜,连接自动关闭。我需要有可能保留服务器上所有打开连接的列表
-
连接由client 保留,直到应用程序明确closes the client。应用程序必须关闭客户端以防止泄漏。无需将所有打开的客户端列表保存到服务器 - 只需将单个客户端重用到服务器即可。