Dubbo 4 Dubbo 高级特性 4.2 Dubbo 常用高级配置 4.2.7 集群容错 4.2.8 服务降级

news2024/9/25 19:25:16

Dubbo

【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】

4 Dubbo 高级特性

文章目录

      • Dubbo
      • 4 Dubbo 高级特性
        • 4.2 Dubbo 常用高级配置
          • 4.2.7 集群容错
          • 4.2.8 服务降级

4.2 Dubbo 常用高级配置

4.2.7 集群容错

【一个场景】

在这里插入图片描述

现在 服务 提供者 部署成 了一个集群,分别在B、C、D的机器

当然A 消费者就会 去调用 这个 集群 中的服务提供者

如果现在,A 调用 B 出错了 【如何处理?】

【Dubbo 集群容错模式】

集群容错模式:

  • Failover Cluster:失败重试。默认值。当出现失败,重试其它服务器 ,默认重试2次,使用 retries 配置。一般用于读操作

【试试这个】

同样 需要启动三个 机器

① 机器1

在这里插入图片描述

在这里插入图片描述

OK,启动

在这里插入图片描述

② 机器2

在这里插入图片描述

在这里插入图片描述

OK,直接启动

在这里插入图片描述

③ 机器3 【不让它 睡,即不超时】

在这里插入图片描述

在这里插入图片描述

OK,直接启动

在这里插入图片描述

OK,看看Dubbo 控制台

在这里插入图片描述

OK, 3 个

现在 设置 集群 属性

在这里插入图片描述

其实不配 也是 这个,默认 重试 两次

启动web 进行测试

在这里插入图片描述

访问测试

在这里插入图片描述

OK, 数据是拿到了

在这里插入图片描述

但是现在只有 3 号

再试试

在这里插入图片描述

OK,这一次,3 台 都访问了,一下,因为进行了重试

在这里插入图片描述

虽然web 里面报 超时 了【默认1 s 超时,之前我们 已经看过了 】

【这就是 集群容错的 第一种 策略】

  • Failfast Cluster :快速失败,只发起一次调用,失败立即报错。通常用于写操作。
  • Failsafe Cluster :失败安全,出现异常时,直接忽略。返回一个空结果。
  • Failback Cluster :失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
  • Forking Cluster :并行调用多个服务器,只要一个成功即返回。
  • Broadcast Cluster :广播调用所有提供者,逐个调用,任意一台报错则报错。

当然这些东西莫要 死记硬背,学会查 官方文档

https://dubbo.apache.org/zh/docsv2.7/user/examples/fault-tolerent-strategy/

在这里插入图片描述

其实都在这儿,OK,这就是 Dubbo 的集群容错

4.2.8 服务降级

【举个栗子】

在这里插入图片描述

一个B 机器,里面部署了 三个 服务,简单从重要 程度来看,支付 服务是 最重要的

后面就由 消费者 来调用 这些服务

什么叫 服务降级呢?

比如说,现在这个机器的性能 已经飚满 了,马上 就要崩了

这个时候我们的 运维人员 就要考虑 把那些不是 很重要的服务关闭掉,释放掉资源,以保证 核心的业务服务不会崩掉 正常运行。【这个 就称为 服务降级】

【服务降级方式】

官方文档: https://dubbo.apache.org/zh/docsv2.7/user/examples/service-downgrade/

在这里插入图片描述

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
registry.register(URL.valueOf("override://0.0.0.0/com.foo.BarService?category=configurators&dynamic=false&application=foo&mock=force:return+null"));
  • mock=force:return null表示消费方对该服务的方法调用都直接返回null值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
  • mock=fail:return null表示消费方对该服务的方法调用在失败后,再返回null值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

【试试】

在这里插入图片描述

这样一个 会引起超时的服务

直接启动

在这里插入图片描述

OK

配置降级 策略,在消费者 那边

在这里插入图片描述

这样的意思就是说, 不再调用 UserService 的服务

直接启动测试

在这里插入图片描述

OK,浏览器访问

在这里插入图片描述

OK,啥也没有

在这里插入图片描述

而且 提供者那边 也没有任何 的输出【这说明什么, 说明压根儿 没调】【直接屏蔽了 】

换 成另一个

在这里插入图片描述

这下就会调 了

在这里插入图片描述

失败了, 并且报错了

看看提供者那边

在这里插入图片描述

确实调用了,而且 重试了 两次

【这就是 服务降级了】

OK,Dubbo 撒花。Zookeeper 见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

痞子衡嵌入式:我被邀请做科锐国际旗下数科同道主办的技术沙龙嘉宾

「数科同道」是「科锐国际」旗下的面向技术开发者的专属垂直招聘平台。《数科同道技术沙龙》是由数科同道主办的活动,每期活动邀请行业内及其他知名公司的技术专家分享来自一线的实践经验。自2022年12月起,数科同道将在苏州,聚焦嵌入式行业及…

【Cadence Virtuoso】IC617 入门操作 (MOS特性分析)

Cadence Virtuoso IC617 入门操作篇前言一、软件操作(1)创建自己的Library(2)创建Library下的 Cell二、电路搭建(1)调出器件三、电路仿真(1)打开仿真工具“ADE L”(2) 对参数进行赋值…

【MATLAB教程案例63】学习如何建立自己的深度学习训练样本库,包括分类识别数据库和目标检测数据库

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.建立自己的深度学习训练样本库1——分类识别数据库

纯精华、二十八道BATJ大厂Java岗之“多线程与并发“面试题分享

年底了,又到了跳槽季啦,该刷题走起了。这里总结了一些被问到可能会懵逼的面试真题,有需要的可以看下~ 一、进程与线程 进程是资源分配的最小单位,线程是cpu调度的最小单位。线程也被称为轻量级进程。 所有与进程相关…

内存读写指令 —— LDR / STR

CPU在处理C语言的 a 操作时,变量a因为是放在在内存里的,需要先把a从内存中读取到寄存器中,运算完毕后再保存到内存中。 因此,这个过程中肯定需要用到内存的读写指令。 目录 1、基本内存读写指令(4个字节读写&#xf…

路由声明式传参和编程式传参

声明式传参(使用带href /或本质上是a标签的时候) 直接带路径里带携带参数 下例 在地址栏是可以看到参数的(querys传参) 在vue.tools插件里可以观察到 取出路径参数的方式 params传参 首先需要在路由规则里配置 下图(复制这行路由规则&am…

Day43——Dp专题

文章目录股票问题篇21、买卖股票的最佳时机22、买卖股票的最佳时机II23、买卖股票的最佳时机Ⅲ24、买卖股票的最佳时机Ⅳ25、最佳买卖股票时机含冷冻期26、买卖股票的最佳时机含手续费股票问题总结篇股票问题篇 21、买卖股票的最佳时机 力扣题目链接 动态规划 定义二维数组…

【GRU回归预测】基于matlab粒子群算法优化门控循环单元PSO-GRU神经网络回归预测(多输入单输出)【含Matlab源码 2286期】

⛄一、CNN-GRU数据预测 1 理论基础 1.1 CNN算法 负荷序列数据为一维数据,用一维卷积核对数据进行卷积处理,以获取数据的特征。 现设定卷积核的维度为3,移动步长为1,对输入数据进行卷积,以获得特征图图谱,即…

WordCount 案例实操

文章目录WordCount 案例实操一、案例需求二、案例分析三、代码实现1、Map阶段代码WordCount 案例实操 一、案例需求 1、需求:在给定的文本文件中统计输出每一个单词的总次数 2、期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop 1 jiao 1 ss 2 xue 1 二、案例分…

java和springboot开发祭祀小程序扫墓系统代祭小程序

介绍 绿色祭祀小程序,用户微信授权登录后可以发布纪念馆(祭祀名人,祭祀英烈,祭祀个人,可以设置成公开状态或者隐私状态)购买祭祀礼物和留言,用户还可以发布代祭的信息 演示视频 小程序 https:…

计算机毕业设计ssm+vue基本微信小程序的购物商城小程序

项目介绍 随着互联网的趋势的到来,各行各业都在考虑利用互联网将自己的信息推广出去,最好方式就是建立自己的平台信息,并对其进行管理,随着现在智能手机的普及,人们对于智能手机里面的应用购物平台小程序也在不断的使用,本文首先分析了购物平台小程序应用程序的需求,从系统开发…

Spark SQL执行计划到RDD全流程记录

目录 0、样例说明 1、解析词义,语义,生成语法树 1.1、概念 1.2、根据样例跟踪Spark代码 2、Unresolved Logical Plan 3、Analyzed Logical Plan 源码 SessionCatalog Analyzer Rule Batch 对比 4、Optimized Logical Plan 5、Physical Plan …

vue3组件基础,组件引用与使用、向子组件传递数据与事件prop、emit

vue3组件基础&#xff0c;组件引用与使用、向子组件传递数据与事件prop、emit 一、组件模板 组成&#xff1a;template(必要)&#xff0c;script&#xff0c;style 例子&#xff1a;模板名称 Hello.vue <template><div class"msgStyle">{{ msg }}</di…

Java项目:ssm校园在线点餐系统源码

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 系统主要分为前台和后台&#xff0c;分为管理员与普通用户两种角色&#xff1b; 前台主要功能有&#xff1a;用户注册、用户登录、我的购物车、…

大学生零基础学编程要多久呢

众所周知现在的程序员都是高薪工作&#xff0c;很多人会通过自学或培训去获得一些编程知识&#xff0c;那“学编程需要什么基础呢&#xff1f;” 编程培训已经成为了很多大学毕业生缓解就业压力的一种方式&#xff0c;毕业之后找一份高薪工作是许多大学生最基本想法&#xff0…

【学习打卡03】可解释机器学习笔记之CAM类激活热力图

可解释机器学习笔记之CAM类激活热力图 文章目录可解释机器学习笔记之CAM类激活热力图CAM介绍CAM算法原理GAP全局平均池化GAP VS GMPCAM算法的缺点及改进CAM可视化同张图&#xff0c;不同类别不同图&#xff0c;同个类别CAM弱监督定位用语义特征编码进行分类CAM各种有意思的应用…

Linux系统中DDR3硬件初始化实验

大家好&#xff0c;我是ST。 今天的话&#xff0c;主要和大家聊一聊&#xff0c;如何使用Cortex-A芯片自带的RAM&#xff0c;很多时候要运行Linux的话是完全不够用的&#xff0c;必须要外接一片RAM芯片&#xff0c;驱动开发板上的DDR3。 目录 第一&#xff1a;何为RAM和ROM …

为什么要学习Python爬虫与数据可视化?

提到Python爬虫与数据可视化&#xff0c;我们都不陌生。因为我们早已身在大数据驱动的时代&#xff0c;数据分析已然成为了一项必备技能。可能有人会问&#xff0c;为什么要学习Python爬虫与数据可视化&#xff1f; 答案是显而易见的&#xff0c;无论是出于时代发展的要求&…

redis之如何支持秒杀场景

写在前面 本文一起看下Redis在秒杀场景中的应用。 1&#xff1a;秒杀都有哪些阶段 redis并非在秒杀的所有阶段都需要使用到&#xff0c;为了更好的了解redis在秒杀场景中的应用&#xff0c;我们先来看下秒杀的不同阶段&#xff0c;基本可以分为秒杀前&#xff0c;秒杀进行时&…

什么是用户增长? (超详细)

一.概况 原因&#xff1a;随着人口红利的衰减&#xff0c;互联网流量红利的马太效应显现&#xff0c;这意味着成本的大幅度增加&#xff0c;企业必须改变过去粗放型的营销和运营方式&#xff0c;用更高效更低成本实现快速增长 定义&#xff1a;通过实验和数据驱动&#xff0c…