V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wq67200976
V2EX  ›  问与答

PHP 调用 go grpc 偶尔会返回 Socket closed

  •  
  •   wq67200976 · 2021-02-23 12:47:12 +08:00 · 923 次点击
    这是一个创建于 1149 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 做了一层转发。

    3 条回复    2021-02-23 18:29:27 +08:00
    dilu
        1
    dilu  
       2021-02-23 17:50:55 +08:00
    超时时间检查一下?
    wq67200976
        2
    wq67200976  
    OP
       2021-02-23 18:21:58 +08:00
    @dilu 不太可能是超时问题,服务端没有报异常, 返回 socekt closed 后,下个请求都还是正常的。10 秒内的 3 个请求,中间的请求出现了 socket closed,很难排查呀。
    dilu
        3
    dilu  
       2021-02-23 18:29:27 +08:00
    @wq67200976 尝试用 strace 看一下系统调用,先判断是 php 的问题还是 go 的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3370 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:39 · PVG 08:39 · LAX 17:39 · JFK 20:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.