WebFlux 项目 被访问后 访问方关闭连接 无法捕获 SocketException: Connection reset - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
heliotrope
V2EX    Java

WebFlux 项目 被访问后 访问方关闭连接 无法捕获 SocketException: Connection reset

  •  
  •   heliotrope 2 月 4 日 1221 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

    程序 A 请求方 程序 B WebFlux 写的网关 程序 C 服务方

    请求方 请求 网关时 超时设置 10 秒 网关设置超时 60 秒 服务方 响应需要 10秒以上 出现一个问题

    网关中使用 WebClient 转发请求到服务方时 当请求方因为 10 秒超时关闭链接 网关只会输出 '''reactor.netty.channel.FluxReceive [0;39m - [warn,299] - [36m[ce92646a-2, L:/192.168.101.233:9195 - R:/192.168.101.233:50853] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.SocketException: Connection reset'''

    还只是 WARN 网关中 WebClient 写的 doOnError doFinally 都不会触发 网关的 ErrorWebExceptionHandler 也拦截不到这个异常

    相当于无法记录这个请求被请求方关闭了 整个进程被 kill 掉了一样 没法做任何操作

    求教 如何捕获这个 Connection reset

    6 条回复    2026-02-09 16:44:45 +08:00
    chocotan
        1
    chocotan  
       2 月 4 日
    试试 doOnCancel
    heliotrope
        2
    heliotrope  
    OP
       2 月 4 日
    @chocotan 没有进...
    在 WebClient 上加了不行
    在 WebFilterChain 上加了也没调用
    chocotan
        3
    chocotan  
       2 月 4 日
    @heliotrope 网关 webClient 转发这一步进来没?
    感觉只能在这个异常的地方加断点,看下前后的调用链
    记录异常试试这个 filter: https://gist.github.com/chocotan/8d501e99a6ef1160077c1d59c43e2733
    chocotan
        4
    chocotan  
       2 月 4 日
    @chocotan onError 方法
    heliotrope
        5
    heliotrope  
    OP
       2 月 4 日
    @chocotan 感谢大佬
    添加这个 filter 可以进入 onCancel

    WebClient 之前是已经进入到等待响应了
    我是在服务方下了个断点卡在那边
    D3EP
        6
    D3EP  
       2 月 9 日
    最容易忽略的就是 onCancel 了..
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     939 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:30 PVG 03:30 LAX 12:30 JFK 15:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86