当前位置: 首页 > news >正文

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

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

相关文章:

  • 存储虚拟化讲解
  • [云原生案例2.1 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】节点部分
  • Apache ActiveMQ 远程代码执行漏洞影响范围
  • 如何规划并新建大数据平台的独立生产域?5步走
  • 工程车云管家|叉车智能管家安卓主板方案
  • 大数据学习之Spark性能优化
  • 个人服务器到期,项目下线,新的开始
  • arcgis 网络分析 生成可达范围/等时线
  • npm切换镜像源
  • Python简单学习
  • 2000-2021年全国各省资本存量测算数据(含原始数据+测算过程+计算结果)
  • Vue.js 中的异步组件是什么?
  • Luckysheet 实现excel多人在线协同编辑
  • C++线程库的基本使用(初级)
  • 2023最新版JavaSE教程——第1天:Java语言概述
  • PTL货位指引标签为仓储管理打开新思路
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven核心概念
  • Unity的粒子总是丢材质
  • P5906 【模板】回滚莫队不删除莫队
  • 1. Collection,List, Map, Queue
  • rabbitmq 交换机相关实例代码
  • 第四章IDEA操作Maven
  • Go语言函数签名和匿名函数
  • Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用
  • 基于JavaWeb的网上销售系统设计与实现
  • wpf添加Halcon的窗口控件报错:下列控件已成功添加到工具箱中,但未在活动设计器中启用
  • antv/x6 自定义html节点并且支持动态更新节点内容
  • 设计模式之命令模式
  • Linux学习笔记--高级
  • 在Java中操作Redis