Node.js rpc错误:代码=已取消描述=上下文已取消
我运行3个docker容器,比如:Node.js rpc错误:代码=已取消描述=上下文已取消,node.js,go,protocol-buffers,grpc,Node.js,Go,Protocol Buffers,Grpc,我运行3个docker容器,比如: container-1(node.js应用程序) 集装箱-2(Golang应用) 集装箱-3(Golang应用) 所有这些容器都使用gRPC进行通信 我正在container-1中进行一元RPC(请求/应答)调用,该调用调用container-2的一个方法。此方法执行各种操作并调用container-3的许多一元RPC(~20) 在整个过程中,有时我会出现以下错误(注意:并非每次,即使我的输入数据也是相同的): rpc错误:code=cancelled des
rpc错误:code=cancelled desc=context cancelled
无论何时出现错误,它都会发生在最近4-5次RPCs调用中的一次(在container-2中)
有一件事我注意到,这个错误发生在我启动流程后约1分钟。
所以
// 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);
});
这回答了你的问题吗@blackgreen-我没有创建任何上下文,此上下文是grpc go的RPC方法的一部分(作为第一个参数)。当您说我在container-1中进行一元RPC(请求/回复)调用,该调用调用container-2的方法时,您[=您控制下的代码]可能正在创建上下文。不幸的是,除非你向我们展示更多的代码,否则没有人能告诉我们sure@blackgreen-我已经编辑了帖子并添加了代码要点。有帮助吗?