failover cluster
dubbo默认。失败自动切换,自动重试其他机器。常用于读操作。
几种配置方式
<dubbo:service retries="2" />
<dubbo:reference retries="2" />
<dubbo:reference>
<dubbo:method name="findByName" retries="2" />
</dubbo:reference>
failfast cluster
一次调用失败就立即失败,常见于非幂等性操作,比如新增操作。
failsafe cluster
出现异常时忽略,常用于日志记录等不是很重要的接口调用。
<dubbo:service cluster="failsafe" />
<dubbo:reference cluster="failsafe" />
failback cluster
失败了在后台自动记录请求,然后定时重发。比较适合写消息队列等操作。
forking cluster
并行调用多个服务提供者,只要有一个成功立即返回。适用于实时性要求比较高的读操作,但是对资源比较浪费。
<dubbo:service cluster="forking" forks="2"/>
<dubbo:reference cluster="forking" forks="2"/>
broadcast cluster
逐个调用所有的provider。任何一个provider出错则报错。常用于通知所有提供者更新缓存或日志等本地资源信息。
动态代理策略
默认使用 javassist 动态字节码生成,创建代理类。但是可以通过 spi 扩展机制配置自己的动态代理策略。