问题场景
在高可用的场景中,服务调用非常频繁,但我们也会消耗第三方服务,如果第三方服务耗时特别长,那要调用方也需要设置超时时间,利用超时时间来保护系统,因为如果第三方服务某天服务器服务有问题,则会长时间占用我们的线程池,高并发场景则不断有请求过来了。我们的线程池会瞬间打满,造成服务超时,异常报错。
解决方案
设置dubbo超时时间,超时后,抛异常,线程池可以回收,这样就可以快速处理请求,保证服务的可用性,虽然都是抛异常,但如果抛异常后,用户再次发送请求,可能请求被第三方服务的其他服务器处理,快速的处理,就不会造成dubbo超时,一定程度上也是提供了告诉高可用。
总结
提供的服务慢、调用的服务慢都会导致数据服务器占用线程,在服务高速提供服务的时候就会导致问题。
表现在线程池满,异常。