容错机制
什么是容错机制? 容错机制指的是某种系统控制在一定范围内的一种允许或包容犯错情况的发生。举个简单例子,我们在电脑上运行一个程序,有时候会出现无响应的情况,然后系统会弹出一个提示框让我们选择,是立即结束还是继续等待,然后根据我们的选择执行对应的操作,这就是“容错”。
在分布式架构下,网络、硬件、应用都可能发生故障,由于各个服务之间可能存在依赖关系,如果一条链路中的某一个节点出现故障,将会导致雪崩效应。为了减少某一个节点故障的影响范围,所以我们才需要去构建容错服务,来优雅的处理这种中断的响应结果。
几种容错机制
Dubbo提供了6种容错机制,分别如下:
失败安全,可以认为是把错误吞掉(记录日志)
2. failover(默认)
重试其他服务器,retries(2)重试次数为2,不包含第1次
3. failfast
快速失败, 失败以后立马报错
4. failback
失败后自动恢复,在某一个地方记录失败请求,而后定时重发
5. forking
并行调用多个服务,只要某一个成功返回,就以这个为准。通过forks设置并行数
6. broadcast广播
任意一台机器报错,则执行的方法报错
配置方式
配置方式如下,通过cluster配置指定的容错方案。
<dubbo:reference interface="com.ft.dubbo.IDemoService" id="demoService" protocol="dubbo" cluster="failsafe"/>