php grpc 调用 go 服务端,偶尔会出现 socket closed 。 相隔 5 秒的两个请求,请求同一个服务,第一个正常返回,第二个出现 socket closed, 有时候却没有问题。可能是业务里加锁的问题吗,但是第一个请求完锁就释放了。即便没有释放,第二个请求也是阻塞。
之前 go 服务挂掉的时候会出现 failed to connect to all addresses,然后会出现 socket closed 。 但是目前服务都正常偶尔出现 socket closed 。 我改如何排查或者复现这个 socket closed 呢
环境 php go nginx 都在 docker 里,php 调用 go 通过 nginx 做了一层转发。
1
dilu 2021-02-23 17:50:55 +08:00
超时时间检查一下?
|
2
wq67200976 OP @dilu 不太可能是超时问题,服务端没有报异常, 返回 socekt closed 后,下个请求都还是正常的。10 秒内的 3 个请求,中间的请求出现了 socket closed,很难排查呀。
|
3
dilu 2021-02-23 18:29:27 +08:00
@wq67200976 尝试用 strace 看一下系统调用,先判断是 php 的问题还是 go 的问题
|