【问题标题】:how to specify reuseaddr socket option on thrift client?如何在 thrift 客户端上指定重用地​​址套接字选项?
【发布时间】:2016-06-06 12:31:36
【问题描述】:

我现在正在使用 thrift-python。在我检查了它的源代码之后,我发现在服务器端,thrift setsockopt(reuseaddr, 1) 默认情况下。 Ctrl+C 重启服务器调试很有帮助。

但现在我在 localhost 有太多客户端,他们使用短连接与服务器通信。当它们关闭连接时,那些随机端口正好处于 TIME_WAIT 状态!所以他们可以覆盖我想在上面运行另一个节俭服务器的端口。那么,如何在 thrift 客户端上指定 REUSEADDR 选项?

【问题讨论】:

  • PS,thrift客户端短连接的代码不是我写的。这是我的campany中的一个公共组件。所以,我宁愿不改变这一点。请帮帮我。

标签: network-programming thrift


【解决方案1】:

我已经弄清楚了一些关于节俭的细节,

  1. 在服务器端,REUSEADDR选项默认设置;
  2. 在客户端,我们似乎无法在底层 TCP 连接上指定该选项;
  3. 在客户端,我们可以使用长连接而不是短连接来避免过多的TIME_WAIT。为此,我们只需要调用一次 transport.open();
  4. 在服务器端,我们可以使用 TForkingServer 代替 ThreadedPoolServer;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多