当前位置: 首页 > news >正文

grpc NewClient 报错 name resolver error: produced zero addresses

场景

grpc版本: google.golang.org/grpc v1.64.0
连接客户端:

import("google.golang.org/grpc""net"
)
// 拿着设备ID 去获取连接
var connMap map[string]net.Conn
conn, err := grpc.NewClient("device_id",grpc.WithContextDialer(func(ctx context.Context, deviceID string) (net.Conn, error) {return connMap[deviceID]}),
)

上面的代码报错:name resolver error: produced zero addresses

解决方法

conn, err := grpc.NewClient("passthrough:device_id",// 加上 passthrough 协议grpc.WithContextDialer(func(ctx context.Context, deviceID string) (net.Conn, error) {return connMap[deviceID]}),
)

原因

1.64版本之前我们使用下面的代码建立连接

// Deprecated: use NewClient instead.  Will be supported throughout 1.x.
func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) {// At the end of this method, we kick the channel out of idle, rather than// waiting for the first rpc.opts = append([]DialOption{withDefaultScheme("passthrough")}, opts...)cc, err := NewClient(target, opts...)if err != nil {return nil, err}......
}

可以看到默认使用的协议是 passthrough,
使用 NewClient 默认使用的协议是 dns

如果不是 passthrough 就会用 url.Parse 来解析地址,这样的话就会解析错误

http://www.lryc.cn/news/357936.html

相关文章:

  • 【Docker】2、配置SSL证书远程访问Docker
  • HFish蜜罐管理端搭建:构建网络安全的主动防御系统
  • 探秘AI艺术:揭开Midjourney绘画的神秘面纱
  • 29-ESP32-S3-WIFI_Driver-00 STA模式扫描全部 AP
  • 2024了,还有人在问为甚死锁?
  • Java中Arrays.toString与new String()字节数组使用的差异
  • 开源表单流程设计器有哪几个突出的优势特点?
  • 景源畅信:抖音小店如何开橱窗?
  • Unix环境高级编程--8-进程控制---8.7函数waitid 8.8函数wait3 wait4
  • window.addEventListener 用法
  • 【全开源】活动报名表单系统(ThinkPHP+Uniapp+uView)
  • python接口自动化之会话保持
  • script 标签中 defer 和 async 属性的区别
  • 【axios】的浅度分析
  • 基于单片机的步进电机控制系统研究
  • Fine-tuning和模型训练的关系
  • 【ai】livekit:Agents 3 : pythonsdk和livekit-agent的可编辑模式下的安装
  • 【传知代码】BERT论文解读及情感分类实战-论文复现
  • 【C language】判断一个正整数是否是2^n
  • 解锁Android高效数据传输的秘钥 - Parcelable剖析
  • 前端 CSS 经典:filter 滤镜
  • 专业的力量-在成为专家的道路上前进
  • 10分钟掌握FL Studio21中文版,音乐制作更高效!
  • Python中4种读取JSON文件和提取JSON文件内容的方法
  • el-pagination在删除非第一页的最后一条数据遇到的问题
  • 视频汇聚平台LntonCVS视频监控系统前端错误日志记录及Debug模式详细讲解
  • 高并发项目-用户登录基本功能
  • kotlin基础之泛型和委托
  • awtk踩坑记录二:移植jerryscript到awtk design项目
  • 正邦科技(day2)