Jiashun Zhu

Results 33 comments of Jiashun Zhu

这里有两种情况: 1. 对端出现异常断网/掉电,client端的tcp连接无法感知(可以通过加SO_KEEPALIVE解决),这时如果server不启动,client就会持续发流量,当server一恢复,client就会收到“Connection reset by peer”,然后下一次rpc会重新建tcp连接。 2. 对端正常重启,client端会直接关闭掉当前的socket,下一次rpc也会重建连接。 在上述两个情况下,都会新建tcp连接,所以你描述的“因tcp重传的backoff机制,导致server端恢复110秒后, client端才请求成功“听起来是一直在用同一个tcp连接,但这似乎不会发生,可以具体描述一下导致你下这一结论的数据/现象么

这个需要通过brpc支持SO_KEEPALIVE来实现了。目前可以通过设置rpc超时时间来控制一下这个等待时间。

好的,因为我最近也在实现一个server,想要实现得更robust一点,学习了一下你的代码。多谢,那我再研究研究