c++ - apache thrift C++ 服务器客户端连接超时

标签 c++ thrift

我在 C++ 中使用 apache thrift 0.9.3 以及具有 15 个线程限制的 TThreadPoolServer。

我遇到了一个问题,远程客户端可能会连接到我的服务器,并因此耗尽一个线程,但永远不会断开连接。服务器上的连接线程将永远保持“使用中”状态。如果这种情况发生 15 次,我的服务器就会阻塞。

有没有办法告诉服务器在设定的时间后断开客户端的连接?这似乎是一个如此明显的问题,我觉得一定有一个我错过的解决方案。

最佳答案

经过大量搜索和询问,似乎可以在传递给 TServerTransport 的 TServerSocket 上调用 setKeepAlive(true) 。

当然,在执行此操作后,我确实看到在杀死客户端后 30 分钟左右线程池计数再次下降。我似乎找不到更改超时长度的方法(setRecvTimeout()/setSendTimeout() 不会更改此设置)。

关于c++ - apache thrift C++ 服务器客户端连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051262/

相关文章:

c++ - 易于使用的可扩展序列化/编码?

jdbc - 如何从 Java 代码设置 Hive 配置属性 hive.exec.dynamic.partition

c++ - libthrift-0.9.1.so : cannot open shared object file: No such file or directory

c++ - 重载赋值运算符是否总是由 C++ 编译器提供?

c++ - Solaris SunStudio 12.4 标准库链接问题

c# - 终止前清理?

c++ - bitblt 在 Windows 10 版本 1703 (15063.138) 上失败

scalability - 使用 Thrift 在集群上扩展 HBase 写入

ubuntu - 我安装 thrift_client 时出错

c++ - 如何判断哪个#include 提供了哪个对象?