首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Thrift超时

Apache Thrift超时
EN

Stack Overflow用户
提问于 2020-08-13 05:05:55
回答 1查看 370关注 0票数 0

我在0.13.0版本中使用apache thrift。只要两次调用之间的时间大约为1.5秒,连接就会关闭。超时时间从1.3秒到1.8秒不等。

keepAlive设置在服务器端和客户端。我尝试了不同的rx,tx,但这并没有改变任何东西。我的用于测试的客户端代码如下。客户端使用的是windows,而服务器运行的是linux。

代码语言:javascript
复制
  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);
  }

Thrift将在下面的代码片段中抛出异常,该代码片段位于TSocket.cpp中

代码语言:javascript
复制
// Timed out!
    if (errno_copy == THRIFT_ETIMEDOUT) {
      throw TTransportException(TTransportException::TIMED_OUT, "THRIFT_ETIMEDOUT");
    }

看起来在这段时间之后有什么东西在重置连接。如果以高频率调用该方法,则不会发生超时。

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 23:26:13

Thrift工作正常,其他基于套接字的通信也显示出这种行为。根本原因是运行服务器的VMware虚拟机。网络模式(桥接、NAT或仅主机)没有影响。通过将服务器移动到物理机,这个问题就解决了。很可能是linux的网络配置有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63384714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档