目的
- Java 开发工程师面试准备
常考面试题
一、Dubbo的服务请求失败怎么处理?【分布式系统中Dubbo】
Double是一个RPC框架,它为我们的应用提供了远程通信的能力,同时Double在RPC通信的基础上去逐步在向一个生态演进,它涵盖了服务注册、动态路由、容错、服务降级、负载均衡等等一些能力。基本上啊,在微服务架构下,我们面临的一些问题,Double它都可以解决。而对于double服务请求失败的场景呢,默认提供了重试的容错机制,也就是说如果基于Double进行服务间 通讯出现异常,服务消费者,会对服务提供者集群中的其他节点去发起重试,确保这一次请求是成功的。默认的情况下额外的重试次数是两次。除此之外呀,double还提供了更多的容错策略,我们可以根据不同的业务场景来进行选择:
首先第一个是快速失败的策略服务,消费者只发起一次请求,如果请求失败就直接把错误抛出去,那么这种适合在一些非幂等性场景中去使用。第二个失败安全策略,如果出现服务通信异常,直接把异常吞掉,不做任何处理。第三个是失败自动恢复策略,后台去记录失败请求,然后通过定时任务来把这些失败的请求进行重发。第四个是并行调用多个服务的一个策略。就是说把这个消息广播到服务提供者的集群,只要有任何一个节点返回,就表示请求执行成功。第五个广播调用策略,逐个去调用服务提供者集群,只要集群中的任意一个节点出现异常,就表示本次请求是失败。要注意的是啊,默认基于从事策略的容错机中需要注意幂等性的处理,否则呢ÿ
相关文章
暂无评论...