首页 > 解决方案 > GRPC - nodejs DNS解析失败

问题描述

我正在使用通过 HTTPS 和自签名证书托管的 GRPC 服务。当我使用如下语法连接时:

const client = new productService('https://grpc-server-xxx.com:9090',
grpc.credentials.createInsecure())

我收到这样的错误

{ Error: 14 UNAVAILABLE: DNS resolution failed
at Object.exports.createStatusError (C:\grpc\node_modules\grpc\src\common.js:91:15)
at Object.onReceiveStatus (C:\grpc\node_modules\grpc\src\client_interceptors.js:1209:28)
at InterceptingListener._callNext (C:\grpc\node_modules\grpc\src\client_interceptors.js:568:42)
at InterceptingListener.onReceiveStatus (C:\grpc\node_modules\grpc\src\client_interceptors.js:618:8) at callback (C:\grpc\node_modules\grpc\src\client_interceptors.js:847:24)code: 14,metadata: Metadata { _internal_repr: {}, flags: 0 },details: 'DNS resolution failed'

任何人都可以帮助我如何解决这个问题。

注意:我的操作系统是 Windows 10,nodejs -- v10.16.0,GRPC

标签: node.jsgrpcgrpc-javagrpc-gogrpc-node

解决方案


gRPC 库无法识别https://地址方案,因此目标名称将导致它尝试解析错误的名称。您应该改用grpc-server-xxx.com:9090ordns:grpc-server-xxx.com:9090dns:///grpc-server-xxx.com:9090。有关 gRPC 如何解释通道目标名称的更多详细信息,请参阅此文档页面


推荐阅读