1.关于dubbo超时重试
dubbo超时重试机制在服务容错、服务稳定方面提供了比较好的框架支持,但在涉及到跨模块调用时,超时重试会导致操作多次执行,这在一般的查询操作中不会有说明问题,但是在一些插入操作中,由于dubbo目前还不支持分布式事物,多次重试会导致垃圾数据产生,因此对于插入操作且未对分布式事物进行处理的情况下,最好去掉超时重试机制(也可以只针某个接口或接口下某个方法进行设置),针对全局的设置如下
<dubbo:provider delay="-1" timeout="6000" retries="0"/>
2.关于dubbo超时
对于dubbo的超时时间设置,需结合实际情况进行评估,否则对于一些执行时间较长的操作,超时重试会导致频繁的发送请求,加大服务端压力,具体设置如下(也可以只针对接口下的某个方法进行设置):
<dubbo:service interface="*.*" ref="*" timeout="延长服务时间"/>
3.关于dubbo异步调用
对于一些花费时间较长的dubbo接口调用,可以将接口设置为异步调用方式,这样就可以在调用接口的同时执行一些其他无关操作,不必必须等待接口返回后在执行其他操作,加快执行效率,具体配置如下:
<dubbo:reference id="barService" interface="com.alibaba.bar.BarService">
<dubbo:method name="findBar"async="true" />
</dubbo:reference>