业务现象,当使用的字段类型不对时,或者以及发生其他请求时的 *** 作异常时,gRpc均表现出请求超时失败的情况,
查看错误log,有一行java.lang.NoSuchFieldError: STATUS_CODE,本以为这是请求的json字段不对导致的,
后来发现这个错误是在自己公司内部编写的skywalking插件中出错的,看了这段代码如下:
当状态错误的时候,执行到箭头1的地方,debug代码直接跳转到其他的地方,不会执行下方的onClose,因为onClose中本身就是返回结果响应的,没有执行自然会让请求端等待直到超时,
后续再观察箭头1的代码,使用idea debug直接执行,果然这行出错了,因为该jar包依赖的类,已经升级,没有 STATUS_CODE 这个属性了,所以开始的错误信息已经提醒,只是一直认为是gRpc字段转换的问题,有被误导,至此解决掉依赖类的问题,超时问题得以解决。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)