Ian
2024 年8 月 2 日 00:52
1
nebula 版本:3.8.0
部署方式:分布式
安装方式:RPM
是否上生产环境:Y
硬件信息
问题的具体描述
相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
程序输出错误日志:failed to initialize the session pool, failed to open transport, error: dial tcp 172.22.9.3:9669: i/o timeout
检查了服务是正常的,防火墙是通的
代码
# 参考githhub的seesion_pool_example实现
# hostList已经封装好,格式如:[{\"Host\":\"172.22.9.3\",\"Port\":9669},...]
poolConf, err := nebula_go.NewSessionPoolConf(datasource.Username, datasource.Password, hostList, datasource.SpaceName,
nebula_go.WithTimeOut(time.Duration(datasource.TimeOut)),
nebula_go.WithIdleTime(time.Duration(datasource.IdleTime)),
nebula_go.WithMaxSize(datasource.MaxSize),
nebula_go.WithMinSize(datasource.MinIdle),
nebula_go.WithHTTP2(false),
)
if err != nil {
common.RootLogger.Errorf("init apollo nebula catalog:%s config error, %s", nebulaCatalog, err)
return
}
pool, err := nebula_go.NewSessionPool(*poolConf, nebula.DefaultLogger{})
if err != nil {
common.RootLogger.Errorf("init nebula catalog:%s session pool error, %s", nebulaCatalog, err)
return
}
Ian
2024 年8 月 2 日 02:20
2
换了nebula-go v3.4.0版本,就可以了,排查是由于v3.8.0版本的HandshakeKey为空导致的.
另外,换了nebula-go v3.4.0还一个问题
自定义连接池配置,不能配置TimeOut,配置的话需要配为0,尝试了300s,3600s都会出现io tomeout
poolConf, err := nebula_go.NewSessionPoolConf(datasource.Username, datasource.Password, hostList, datasource.SpaceName,
nebula_go.WithMinSize(datasource.MinIdle), nebula_go.WithMaxSize(datasource.MaxSize),
nebula_go.WithIdleTime(time.Duration(datasource.IdleTime)),
//, nebula_go.WithTimeOut(time.Duration(datasource.TimeOut))
)
1 个赞
你用的是 release 的 3.8 的客户端吗?
Ian
2024 年8 月 5 日 07:48
4
是的,刚开始用的是v3.8.0,后面换到v3.4.0
Ian
2024 年8 月 5 日 08:09
5
另外还发现一个问题,如果配置time_out为0,即是永不过期;
如果客户端一直没有调用,session超过了8小时,nebula服务端会关闭session,然而客户端还一直持有该session;
如果使用该session查询时,会出现172.22.9.3:9669: write: broken pipe错误
nbot
2024 年8 月 6 日 09:28
6
客户端设置 timeout 跟服务端的 session 过期完全没有关系的。
nbot
2024 年8 月 6 日 09:30
7
能不能发一下 timeout 是怎么设的,单位是啥
Ian
2024 年8 月 7 日 07:20
8
问题原因如下:
1、需要使用nebula-go 3.4.0稳定版本
2、设置idleTime和timeOut时time.Duration单位是纳秒,需要转成秒
3、空闲session由idleTime配置释放,不会出现使用已关闭session问题
system
关闭
2024 年8 月 14 日 07:21
9
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。