Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache zookeeper Zookeeper TCP连接何时清理服务器端?_Apache Zookeeper_Apache Curator - Fatal编程技术网

Apache zookeeper Zookeeper TCP连接何时清理服务器端?

Apache zookeeper Zookeeper TCP连接何时清理服务器端?,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,在测试设置中(单客户端服务器-运行Gatling的本地主机,在测试期间创建和关闭连接),我的单节点Zookeeper将保持所有TCP连接打开,直到测试运行完成 在前2分钟的测试运行期间,我重复创建最多10个并行的客户端连接,这些连接处于活动状态大约30秒,然后再次关闭它们的连接。因此,在任何时候,前2分钟内最多有10个连接处于活动状态。 然后测试继续8分钟,在此期间只有1个客户端连接处于活动状态 客户端:使用策展人2.9.1和Zookeeper 3.4.6 Zookeeper节点:3.4.8-1

在测试设置中(单客户端服务器-运行Gatling的本地主机,在测试期间创建和关闭连接),我的单节点Zookeeper将保持所有TCP连接打开,直到测试运行完成

在前2分钟的测试运行期间,我重复创建最多10个并行的客户端连接,这些连接处于活动状态大约30秒,然后再次关闭它们的连接。因此,在任何时候,前2分钟内最多有10个连接处于活动状态。 然后测试继续8分钟,在此期间只有1个客户端连接处于活动状态

客户端:使用策展人2.9.1和Zookeeper 3.4.6

Zookeeper节点:3.4.8-1--1

如果客户端正确关闭连接(证明:我看到在执行ls/path/to/ephemerals时删除了它的临时节点,zookeeper日志也指示关闭的连接)

但是,当向zookeeper节点发送cons命令时,TCP连接数在前2分钟内不断增加,总共达到126个。然后,它将保持在该数字,直到测试运行完成,此时所有连接都将立即消失

我预计连接的数量要少得多,比如10到20个,并且在测试的“活动”阶段是稳定的。相反,只要我打开/关闭新连接,它就会一直上升

在最初的2分钟内,zookeeper日志显示打开和关闭连接:

2016-03-25 15:54:04,305 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:NIOServerCnxnFactory@192] - Accepted socket connection from /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,321 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@900] - Client attempting to establish new session at /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,324 - INFO  [SyncThread:0:ZooKeeperServer@645] - Established session 0x153ae440b2e000f with negotiated timeout 10000 for client /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,324 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@924] - got auth packet /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,325 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@958] - auth success /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,326 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@924] - got auth packet /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,328 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@958] - auth success /0:0:0:0:0:0:0:1:60758
2016-03-25 15:54:04,803 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:NIOServerCnxnFactory@192] - Accepted socket connection from /127.0.0.1:37236
2016-03-25 15:54:04,804 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:ZooKeeperServer@900] - Client attempting to establish new session at /127.0.0.1:37236
2016-03-25 15:54:04,805 - INFO  [SyncThread:0:ZooKeeperServer@645] - Established session 0x153ae440b2e0010 with negotiated timeout 10000 for client /127.0.0.1:37236
2016-03-25 15:54:04,828 - INFO  [ProcessThread(sid:0 cport:12182)::PrepRequestProcessor@489] - Processed session termination for sessionid: 0x153ae440b2e0010
2016-03-25 15:54:04,830 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:NIOServerCnxn@1008] - Closed socket connection for client /127.0.0.1:37236 which had sessionid 0x153ae440b2e0010
然后,仅在运行结束时,对于我看到的每个连接

2016-03-25 15:57:44,002 - INFO  [SessionTracker:ZooKeeperServer@355] - Expiring session 0x153ae440b2e006c, timeout of 10000ms exceeded
2016-03-25 15:57:44,003 - INFO  [SessionTracker:ZooKeeperServer@355] - Expiring session 0x153ae440b2e00b8, timeout of 10000ms exceeded
2016-03-25 15:57:44,003 - INFO  [SessionTracker:ZooKeeperServer@355] - Expiring session 0x153ae440b2e0094, timeout of 10000ms exceeded
...
2016-03-25 15:57:44,014 - INFO  [ProcessThread(sid:0 cport:12182)::PrepRequestProcessor@489] - Processed session termination for sessionid: 0x153ae440b2e006c
2016-03-25 15:57:44,014 - INFO  [ProcessThread(sid:0 cport:12182)::PrepRequestProcessor@489] - Processed session termination for sessionid: 0x153ae440b2e00b8
2016-03-25 15:57:44,015 - INFO  [ProcessThread(sid:0 cport:12182)::PrepRequestProcessor@489] - Processed session termination for sessionid: 0x153ae440b2e0094
...
(请注意,上面的日志是从手动中断的运行中获取的,但如果我让运行完成到16:02,则行为相同)

我使用以下配置运行(摘录):


连接数量的增加是与测试设置有关,还是Zookeeper的操作方式固有的?

结果表明,这是客户端代码中的错误。连接没有正确关闭,只完成了一半的清理(临时节点被完全删除,但客户端连接实际上没有真正关闭)


很抱歉占用您的时间。

您确定在整个测试过程中实际的tcp连接是打开的吗?像
netstat-anp--tcp
这样的东西显示了什么?可能是zookeeper在监视连接。是的,我确信连接确实存在。事实上,仔细检查我们的客户端代码发现连接以错误的方式关闭(省略了实际的connection.close)。所以这不是动物园管理员和加特林的问题。
tickTime=2000
maxSessionTimeout=10000
minSessionTimeout=4000
maxClientCnxns=0