当前位置:首页 > 编程笔记 > 正文
已解决

Dubbo 的服务请求失败怎么处理?

来自网友在路上 162862提问 提问时间:2023-11-08 23:35:29阅读次数: 62

最佳答案 问答题库628位专家为你答疑解惑

本文引用mic老师面试文档
今天分享的面试题,几乎是 90%以上的互联网公司都会问到的问题。
“Dubbo 的服务请求失败怎么处理”?
对于这个问题,我们来看一下普通人和高手的回答。
普通人
嗯… 我记得, Dubbo 请求处理失败以后,好像是会重试。 嗯!
高手
Dubbo 是一个 RPC 框架,它为我们的应用提供了远程通信能力的封装,同时,Dubbo
在 RPC 通信的基础上,逐步在向一个生态在演进,它涵盖了服务注册、动态路由、容
错、服务降级、负载均衡等能力,基本上在微服务架构下面临的问题,Dubbo 都可以
解决。
而对于 Dubbo 服务请求失败的场景, 默认提供了重试的容错机制 ,也就是说,如果基
于 Dubbo 进行服务间通信出现异常,服务消费者会对服务提供者集群中其他的节点发
起重试,确保这次请求成功, 默认的额外重试次数是 2 次
除此之外,Dubbo 还提供了更多的容错策略,我们可以根据不同的业务场景来进行选
择。
1. 快速失败策略 ,服务消费者只发起一次请求,如果请求失败,就直接把错误抛出去。
这种比较适合在非幂等性场景中使用
2. 失败安全策略 ,如果出现服务通信异常,直接把这个异常吞掉不做任何处理
3. 失败自动恢复策略 ,后台记录失败请求,然后通过定时任务来对这个失败的请求
行重发
4. 并行调用多个服务策略 ,就是把这个消息广播给服务提供者集群,只要有任何一个
节点返回,就表示请求执行成功。
5. 广播调用策略 ,逐个调用服务提供者集群,只要集群中任何一个节点出现异常,就
表示本次请求失败 要注意的是,默认基于重试策略的容错机制中,需要注意幂等性的处理,否则在事务型
的操作中,容易出现多次数据变更的问题。
以上就是我对这个问题的理解!
结尾
这类的问题,并不需要去花太多时间去背,如果你对于整个技术体系有一定的了解,你
就很容易想象到最基本的处理方式。
即便是你对 Dubbo 不熟悉,也能回答一两种!
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Dubbo 的服务请求失败怎么处理?":http://eshow365.cn/6-35671-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!