Dubbo是什么
Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架
致力于提供高性能和透明化的
RPC远程服务调用方案,以及SOA服务治理方案
官网: Dubbo官网
dubbo主要是为了提供远程线程访问的一种框架,占用内存低,性能高。
dubbo有很多特性,今天给大家讲讲dubbo的其中一个高级特性-超时
- 服务消费者在调用服务提供者的时候发生了阻塞,等待的情形,这个时候服务消费者会一直等待下去,
- 在某个访问的峰值时刻,大量的请求都在同时的访问服务消费者,会造成大量线程堆积,会造成服务器雪崩
- dubbo可以利用超时机制来解决这个问题,设置一个超时时间,在这个时间段内,无法完成服务访问,则会自动断开连接
- 使用timeout属性配置超时时间,默认时间是1000毫秒.
服务提供方:
timeout设置超时时间,retries设置重复次数
服务消费方:
在我们整个远程调用的过程中,有两个位置可以设置超时时长
第一个地方是服务提供方的service注解中设置
第二个地方实在服务消费方在远程注入的时候,通过timeout属性设置超时时长
需要注意的是:
如果同时设置,以服务消费方设置的超时时长为准,就近原则
但是一般不建议在服务消费方设置超时时长,因为一般消费方调用提供者的方法,提供方一般对自己程序的操作时长(查询数据库等。。)会有大概的估算,会给出超时时长的设置,我们服务消费方一般不用设置,并且不建议。