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使用总结
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java Web基础】一些网页设计基础(二)

文章目录 1. Bootstrap导航栏设计1.1 代码copy与删减效果1.2 居中属性与底色设置1.3 占不满问题分析1.4 字体颜色、字体大小、字体间距设置1.5 修改超链接hover颜色,网站首页字体颜色 1. Bootstrap导航栏设计 1.1 代码copy与删减效果 今天设计导航栏,直…

微调alpaca-lora遇到的一些问题

1、环境简介 环境: 系统:Ubuntu torch:2.2.1 python:3.10 gpu:V100 16g peft:0.9.0 使用PEFT中的lora方式微调llama-2-7b-hf,项目地址:alpaca-lora 2、混合精度训练Tensor相互计算会…

PCL点云处理之中值计算(二百三十三)

PCL点云处理之中值计算(二百三十三) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 读取的点云是无序散乱的,点云坐标包括xyz三个维度,以常用的z高程维度为例,计算其高程中值,获取对应的点。 主要涉及到根据高程对点云进行排序的操作,下面是具体的代码和结果。 …

Git版本管理工具

前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: Git使用教程-配置管理 git reset详解-CSDN博客 3、Git使用不完全指南&am…

C语言每日一题07

一、题目 二、解析 逻辑与 &&、逻辑或 || 均有“短路”特性: 逻辑与&&“短路”:当逻辑与&&的左操作数为逻辑 “假“ 时,就足以判断该逻辑运算的结果为假了,故右操作数就不再被执行。 逻辑或||“短路”&#xff1a…

python中获取当前项目的目录

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 今天介绍一下,如何在python中获取当前项目所在的目录,而不是运行脚本的目录。 class ProjectPaths:# 初始化时获取当前脚本的路径staticmethoddef get_script_dir():…

Leetcode 994. 腐烂的橘子

心路历程: 一开始以为和刚做过的岛屿问题很像,只不过是把岛屿问题换成BFS去做,然后再加上一些计数的规则。结果做完后发现只能通过一半左右的测试用例,发现有一个逻辑错误在于,当腐烂的橘子位于两端时,可以…

4.1 用源文件写汇编代码

汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…

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

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

Codeforces Round 935 (Div. 3)A~E

A. Setting up Camp 题目分析: 有三种人,内向、外向、综合,内向必须独自一个帐篷,外向必须3个人一个帐篷,综合介于1~3人一个帐篷,我们发现非法情况只会存在外向的人凑不成3个人一个帐篷的情况,因外向不够可…

JavaEE--小Demo

目录 下载包 配置 修改文件 pom.xml application.properties 创建文件 HelloApi.java GreetingController.java Greeting.java DemoApplication.java 运行包 运行命令 mvn package cd target dir java -jar demo-0.0.1-SNAPSHOT.jar 浏览器测试结果 下载包 …

为什么大家都在“挺”鸿蒙?

试想某一天,应用软件能够在手机、电视、手表甚至汽车等设备上,实现无缝流转、纵享丝滑。 这不仅是畅想,而是鸿蒙正在布局的“遥遥领先”。 随着HarmonyOS NEXT鸿蒙星河版面向开发者开放申请、鸿蒙原生应用版图的基本成型,这个国…

智慧水务:雨季山区水域水务智能化监控与监测管理方案

一、方案背景 雨季的水务管理对于各区县来说,无疑是一项至关重要的任务。夏季雨水充沛,江河湖泊水位上涨,山洪、上游排水等情况时有发生,给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景,需…

如何在edge上安装拓展weTab

1.点解管理拓展 2.点击获取拓展 3.搜索框输入"wetab"并搜索 4.点击获取按钮 5.点击之后跳出弹窗,点击"添加拓展" 6.回到拓展页面,找到wetab拓展,点击右侧启动拓展 7.打开新的界面,wetab已经启动 8.自定义界面 1. 右键图标可以进行删除操作 2.左下角有个设…

ts版本微信小程序在wxml保存文件不刷新页面的解决办法

将project.config.json中的skylineRenderEnable改为false "skylineRenderEnable": false

HTTP协议1

官网学习网址:HTTP | MDN 常规信息 常规请求头信息: 状态码: 200 正常响应 404 未找到资源 500 服务端一场的 3** 重定向 资源缓存 响应头信息: 客户端允许的请求方法类型 Access-Control-Allow-Methods: GET, POST, PUT, DELET…

flutter 局部view更新,dialog更新进度,dialog更新

局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…

【FAQ】BSV区块链代码库常见问题解答

​​发表时间:2024年2月27日 BSV区块链协会上线了JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,让开发者可以在BSV区块链上便捷地进行开发,尤其是开发那些可…

1.实用Qt:解决绘制圆角边框时,圆角锯齿问题

目录 问题描述 解决方案 方案1: 方案2: 结果示意图 问题描述 做UI的时候,我们很多时候需要给绘制一个圆角边框,初识Qt绘制的童鞋,可能绘制出来的圆角边框很是锯齿,而且粗细不均匀,如下图&…

掌握增长转化漏斗策略的秘诀:打造高效营销之道

在不断发展的销售和营销领域,传统战略通常遵循一条可预测的路径,引导潜在客户通过漏斗,最终实现销售。然而,一种有趣的方法颠覆了这一传统模式:增长漏斗策略。这种创新方法重新规划了客户旅程,强调了培养现…