Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应
我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,成为雪崩效应。
在这里插入图片描述雪崩效应,往往是因为服务没有做好容错造成的。
微服务常见容错方案
在这里插入图片描述仓壁模式
比如让controller有自己独立的线程池,线程池满了就直接拒绝请求
在这里插入图片描述断路器模式
对api进行监控,设置一段时间内的错误率、错误次数。
如果一段时间内达到预值,断路器就会打开,不去调用远程api了。
(断路器模式设计了半开状态,远程api恢复后,断路器可以再次闭合。)
在这里插入图片描述使用Sentinel实现容错
Sentinel是一个实现服务容错的库。
微服务整合sentinel
加依赖(无注解、无配置)
在这里插入图片描述服务整合Sentinel后,通过actuator/sentinel可以访问到
在这里插入图片描述搭建Sentinel控制台
在这里插入图片描述登录,账户/密码 sentinel/sentinel
在这里插入图片描述在这里插入图片描述目前控制台上什么都没有,在服务配置上整合sentinel的控制台地址
在这里插入图片描述调用服务后再刷新控制台,可以看到服务(sentinel和ribbon一样都是懒加载的)
在这里插入图片描述在这里插入图片描述用@SentinelResource注解,进行限流和降级
在这里插入图片描述在这里插入图片描述可以把block/fallback抽离出业务代码,定义单独类
在这里插入图片描述在这里插入图片描述RestTemplate整合Sentinel
使用@SentinelRestTemplate注解
将注解加在服务初始化类上,就可以给RestTemplate整合Sentinel了
在这里插入图片描述写测试代码(就是使用feign之前的那段代码)
在这里插入图片描述查看sentinel控制台->簇点电路
在这里插入图片描述多出来的两行就是@SentinelRestTemplate注解支持的。
RestTemplate整合Sentinel还提供了一个开关resttemplate.sentinel.enabled
在这里插入图片描述Feign整合Sentinel
只需要添加配置 feign.sentinel.enabled = true
在这里插入图片描述Sentinel控制台结果和上面整合RestTemplate效果一下
在这里插入图片描述如果服务被流控了,不想抛异常,
可以在UserCenterFeignClient接口@FeignClient注解上指定fallback参数到指定的类上
在这里插入图片描述该类实现UserCenterFeignClient接口
在这里插入图片描述配置sentinel流控规则,实现效果是“一个默认用户”,而不是抛异常了
在这里插入图片描述Sentinel使用总结
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海外舆情监控的重要性以及云手机的推荐

海外市场不仅有着无尽的商机,同时也存在着各种各样的挑战。例如,海外市场舆情的复杂变化给企业带来了潜在风险,尤其在新媒体技术快速发展的时代,舆论对企业品牌形象的影响日益巨大。本文将详细探讨海外舆情监控的重要性以及为大家…

jmeter接口测试教程及接口测试流程详解

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发取样或通过…

24.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

Java程序设计 3 选择

布尔数据类型和逻辑运算符 boolean类型的值为true和false,其字面值也只有true和false(也就是不能等同视为0和非零,这一点和C/C有所不同),且不能和其他数据类型混合运算(包括类型转换)。 Java里面…

【leetcode】67.二进制求和

前言:剑指offer刷题系列 问题: 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例: 输入:a "1010", b "1011" 输出:"10101"思路1: …

【面试题】HashMap为什么可以插入null而Hashtable就不可以(源码分析)

首先hashmap可以插入null值,但是hashtable和hashcurrentHashmap是不支持的;这是因为在 hashmap对插入key为null进行了特殊处理,当插入的值为null的时候会将哈希值设置为0 但是hashtable会直接抛出异常: 并且hashmap是线程不…

微信小程序选择器picker的使用(省市区)

index.wxml picker中的 moderegion模式&#xff0c;这里同element中的select不同的是&#xff0c;不需要自己在绑定数据原&#xff0c;默认就包含了省市区的整体数据 <view class"section"><view class"section__title">省市区选择器</vie…

13、Deconstructing Denoising Diffusion Models for Self-Supervised Learning

简介 研究了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力 解构DDM&#xff0c;逐步将其转变为经典的去噪自动编码器(DAE) 探索现代ddm的各个组成部分如何影响自监督表征学习 结论&#xff1a; 只有很少的现代组件对于学习良好的表示是至关重要的&#xff0c;而其他许多…

2022年第13届蓝桥杯Java省赛B组-星期计算

一、题目 星期计算 【问题描述】 已知今天是星期六&#xff0c;请问 天后是星期几&#xff1f;注意用数字 1 到 7 表示星期一到星期日。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一个整数&#xff0c;在提交答案时只填写这个…

算法|基础算法|大数取余

基础算法|暴力 大数取余 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 大数取余 大数取余&#xff0c; 从字符串的首位开始&#xf…

GESP图形化编程三级认证真题 2024年3月

GESP 图形化三级试卷 &#xff08;满分&#xff1a;100 分 考试时间&#xff1a;120 分钟&#xff09; 一、单选题&#xff08;一共 15 个题目&#xff0c;每题 2 分&#xff0c;共 30 分&#xff09; 1、小杨的父母最近刚刚给他买了一块华为手表&#xff0c;他说手表上跑…

动态QCA|一条通向动态QCA产出的道路

一、动态QCA原理介绍 &#xff08;一&#xff09;动态QCA介绍 QCA&#xff08;Qualitative Comparative Analysis&#xff09;是一种定性比较分析方法&#xff0c;用于研究中小样本量的数据&#xff0c;旨在探索变量之间的复杂关系。在QCA中&#xff0c;研究者将变量分为二元变…

HarmonyOS ArkTS 开发基础/语言

目录 一、ArkUI (方舟开发框架) 概述 1.1 基本概念 1.2 两种开发范式 1.3 不同应用类型支持的开发范式 二、ArkTS 声明式开发范式 2.1 开发能力 2.2 整体架构 三、ArkTS 基础类型 3.1 Any 类型 3.2 数字类型 3.3 字符串类型 3.4 布尔类型 3.5 联合类型 3.6 数组类…

jackson解决java.lang.NoSuchMethodError

本质上是依赖版本冲突。 如&#xff1a;jackson-databind-2.11.2&#xff08;版本太低&#xff0c;需要升级版本&#xff09; jackson-core-2.12.6 jackson-dataformat-xml-2.12.6 idea用Analyze Dependencies插件 复制对应的groupId和artifactId放到exclusion里面 <grou…

哈希表及其实现

哈希概念 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过关键码的多次比较。顺序查找时间复杂度为O(N)&#xff0c;平衡树中为树的高度&#xff0c;即 O(log2N)&#xff0c;搜索的效率取决…

【C++】—— 装饰器模式

目录 &#xff08;一&#xff09;什么是装饰器模式 &#xff08;二&#xff09;为什么要使用装饰器模式 &#xff08;三&#xff09;装饰器模式的实现步奏 &#xff08;四&#xff09;代码示例 &#xff08;五&#xff09;装饰器模式优缺点 &#xff08;一&#xff09;什么…

文档翻译-NVIDIA DALI Pipeline

文档地址&#xff1a; Pipeline — NVIDIA DALI 1.12.0 documentation 在DALI中&#xff0c;任何数据处理任务都有一个称为Pipeline的中心对象。Pipeline对象nvidia.dali.Pipeline或其派生类的实例。Pipeline封装了数据处理图和执行引擎。 您可以通过以下方式定义DALI管道&am…

虚拟内存页表和内存保护

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第21篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲虚拟内存和内存之间的页表和内存安全问题。 虚拟内存 前面的文章提到过&#xff0c;程序装载到内存的过程。可以知道&#xff0c;程序并不直接访…

【python】flask基于cookie和session来实现会话控制

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

使用Java版工程行业管理系统源码,提升工程项目的综合管理能力

工程项目管理涉及众多环节和角色&#xff0c;如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统&#xff0c;该系统支持前后端分离&#xff0c;功能全面&#xff0c;可满足不同角色的需求。从项目进度图表到施工地图&#xff0c;再到…