Apache Thrift超时

问题描述

我在0.13.0版中使用apache节俭。 一旦两次通话之间的时间大约为1.5秒,连接就会关闭。 超时时间从1.3秒到1.8秒不等。

在服务器和客户端中设置了

# both print: 3 {'foo': 'bar','number': 100} f(**{'a':3,'foo':'bar','number':100}) f(a=3,foo='bar',number=100) 。我为rx,tx尝试了不同的方法,但这并没有改变任何东西。 我用于测试的客户代码如下。 客户端正在使用Windows,服务器正在运行linux。

keepAlive

节俭将在下面的代码段(位于TSocket.cpp中)引发异常。

  for (int i = 0; i < 100'000;i+=50){
    remote_method();
    auto sleep = std::chrono::milliseconds(i);
    std::cout << "Sleep: " << i << "\n";
    std::this_thread::sleep_for(sleep);
  }

这次之后,似乎有些东西正在重置连接。 如果以高频率调用此方法,则不会发生超时。

解决方法

节俭工作正常,其他基于套接字的通信也显示了此行为。根本原因是服务器在其中运行的VMware虚拟机。网络模式(桥接,NAT或仅主机)没有任何作用。通过将服务器移至物理机,已解决了该问题。 linux的网络配置很可能是错误的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...