Vin*_*pta 5 go protocol-buffers node.js grpc
我正在运行 3 个 docker 容器,比方说:
所有这些容器都使用 gRPC 进行通信。
我正在容器 1 中执行一元 RPC(请求/回复)调用,该调用调用容器 2 的方法。该方法执行各种操作并调用container-3的大量一元RPC(~20)。
在整个过程中有时我会收到以下错误(注意:不是每次,即使我的输入数据是相同的):
rpc error: code = Canceled desc = context canceled
每当错误出现时,它都会发生在最后 4-5 个 RPC 调用之一(在 container-2 中)。
我观察到的一件事是,这个错误是在我开始该过程后约 1 分钟后出现的。
所以,
谢谢。
编辑:
以下是显示我如何连接和调用 RPC 的要点代码:
// load proto
const proto = await grpc.load(PROTO_PATH);
// connect to service
const SERVICE = new proto.types.MyService(SERVICE_ADDR, grpc.credentials.createInsecure(), {
"grpc.keepalive_time_ms" : (5 * 60 * 1000),
"grpc.keepalive_permit_without_calls": 1,
})
// calling RPC
SERVICE.sync({
id: Id,
}, (err, resp) => {
if (err) {
return reject(err);
}
if (!resp.success) {
return reject(new Error(`Action error: ${resp.intended_action}: ${resp.reason}`));
}
resolve(resp.intended_action);
});
Run Code Online (Sandbox Code Playgroud)