Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

客户端调用服务器在一定压力下(非常小的并发)报错,且 get connection 非常长 #3475

Open
edgar1170 opened this issue Nov 11, 2022 · 5 comments

Comments

@edgar1170
Copy link

2022-11-11 17:24:04.180 WARN 2267 --- [service-tomcat-1163] o.a.s.m.c.publish.SlowInvocationLogger : 56 slow(1000 ms) invocation, CONSUMER rest crmadapter.crmAdapterService.queryProdInstIot:
http method: POST
url : /ICRMAdapterService/queryProdInstIot/
server : rest://10.0.3.138:8081
status code: 408
total : 40004.524 ms
prepare : 0.22 ms
handlers request : 32122.667 ms
client filters request : 0.78 ms
send request : 0.355 ms
get connection : 32122.307 ms
write to buf : 0.448 ms
wait response : 0.0 ms
wake consumer : 0.0 ms
client filters response: 0.0 ms
handlers response : 0.0 ms
2022-11-11 17:24:04.181 ERROR 2267 --- [service-tomcat-1163] c.h.m.p.e.GlobalExceptionHandler : 118 RuntimeException:

org.apache.servicecomb.swagger.invocation.exception.InvocationException: InvocationException: code=408;msg=CommonExceptionData{code='SCB.00000004', message='Invocation Timeout.', dynamic={}}
at org.apache.servicecomb.core.provider.consumer.SyncResponseExecutor.guardedWait(SyncResponseExecutor.java:90)
at org.apache.servicecomb.core.provider.consumer.SyncResponseExecutor.waitResponse(SyncResponseExecutor.java:58)
at org.apache.servicecomb.core.provider.consumer.InvokerUtils.innerSyncInvokeImpl(InvokerUtils.java:210)
at org.apache.servicecomb.core.provider.consumer.InvokerUtils.lambda$decorateSyncRetry$cf34ec48$2(InvokerUtils.java:263)

@edgar1170
Copy link
Author

edgar1170 commented Nov 11, 2022

参数配置如下:
servicecomb.request.timeout: 20000
servicecomb.rest.client.connection.idleTimeoutInSeconds为默认值
通过检查调用链,发现服务器处理业务耗时仅在200ms以内

@edgar1170
Copy link
Author

@liubao68

@liubao68
Copy link
Contributor

可以看下客户端和服务端对应时间的完整的metrics。 根据你的描述, 可能是服务端大量请求排队了, 业务处理200ms其实是非常长的时间了。

@edgar1170
Copy link
Author

可以看下客户端和服务端对应时间的完整的metrics。 根据你的描述, 可能是服务端大量请求排队了, 业务处理200ms其实是非常长的时间了。

@liubao68 因为业务处理方需要调用外部第三方的接口,因此压力下耗时会比较长,2s,3s的也很常见,请问这种情况可以如何调整参数使得不会返回408呢?哪怕是慢一点,因为以前1.3版本的时候是不会撑破的

@yanghao605
Copy link
Contributor

servicecomb.request.timeout: 20000

把这个参数调大呗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants