如何在节俭客户端上指定 reuseaddr 套接字选项?
how to specify reuseaddr socket option on thrift client?
我现在正在使用 thrift-python。在我检查了它的源代码之后,我发现在服务器端,thrift setsockopt(reuseaddr, 1) 默认情况下。有利于Ctrl+C重启服务器调试
但是现在本地主机上的客户端太多了,他们使用短连接与服务器通信。当他们关闭连接时,那些随机端口正好处于 TIME_WAIT 状态!所以他们可以覆盖我想要 运行 另一个节俭服务器的端口。那么,如何在 thrift 客户端上指定 REUSEADDR 选项?
我已经弄清楚了一些关于节俭的细节,
- 在服务器端,默认设置REUSEADDR选项;
- 在客户端,我们似乎无法在底层 TCP 连接上指定该选项;
- 在客户端,我们可以使用长连接代替短连接,避免连接过多TIME_WAIT。为此,我们只需要调用 transport.open() 一次;
- 在服务器端,我们可以使用TForkingServer代替ThreadedPoolServer;
我现在正在使用 thrift-python。在我检查了它的源代码之后,我发现在服务器端,thrift setsockopt(reuseaddr, 1) 默认情况下。有利于Ctrl+C重启服务器调试
但是现在本地主机上的客户端太多了,他们使用短连接与服务器通信。当他们关闭连接时,那些随机端口正好处于 TIME_WAIT 状态!所以他们可以覆盖我想要 运行 另一个节俭服务器的端口。那么,如何在 thrift 客户端上指定 REUSEADDR 选项?
我已经弄清楚了一些关于节俭的细节,
- 在服务器端,默认设置REUSEADDR选项;
- 在客户端,我们似乎无法在底层 TCP 连接上指定该选项;
- 在客户端,我们可以使用长连接代替短连接,避免连接过多TIME_WAIT。为此,我们只需要调用 transport.open() 一次;
- 在服务器端,我们可以使用TForkingServer代替ThreadedPoolServer;