graph配置参数idle_timeout_secs的使用差异问题

  • nebula 版本:v3.1.0 , Git Info Sha:33fd35eae
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否为线上版本:Y
  • 问题的具体描述
    graph的这两个配置参数有什么差异吗?
# The number of seconds Nebula service waits before closing the idle connections
--client_idle_timeout_secs=28800
# The number of seconds before idle sessions expire
# The range should be in [1, 604800]
--session_idle_timeout_secs=28800
1 个赞

主要是Nebula的connection和session的区别。
第一个参数用于connection是客户端和数据库之间的连接,无状态。
第二个参数用于session是用户会话,有状态,客户端需要登录获取一个session才能访问数据库,一个session会hold住一个connection。

1 个赞

这个参数是connection的等待超时设置吗?比如设置了5s,connection没有返回数据,就中断connection,这样理解可以吗?
不太理解设置后的表现是什么,connection 关闭后,session会同步关闭吗?

不是,所谓idle就是connection或者session被闲置的状态,就是多久没被用之后会timeout。
connection关闭后如果session没过期,session还可用,会去connection pool中取一个新的可用的connection。

场景

我现在正在进行压测,开始–session_idle_timeout_secs=28800 这个参数设置的八小时,所以客户端每次起的session数量正好把服务端占满了,第二次再起客户端,就无法新建session了,拒绝服务。

解决方案

我把–session_idle_timeout_secs=20设置成20s了,现在两次压测重启服务间隔超过20s,服务端的session自动失效,就可以重新建立新session了,但是导致console使用,session时间也特别短,体验不好

问题

想看看 只修改client_idle_timeout_secs这个参数,是否解决以上问题?
主要还没太理解connction设置超时时间减少,connection timeout后,重新创建connection是否会复用原来的session。

每次测试完,在客户端做 session release

1 个赞

不会

好的 谢谢

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。

浙ICP备20010487号