微服务实战(十一)微服务的熔断降级 - Sentinel

本文详细介绍了微服务架构中使用Sentinel进行熔断降级的重要性,以及在SpringCloud中设置Sentinel熔断规则的方法。通过一个具体的场景,展示了如何配置响应超时熔断,并进行了并发请求测试,验证了Sentinel的熔断效果。
摘要由CSDN通过智能技术生成

本章主要内容

本章我们主要讲述如何使用Sentinel的熔断降级能力,包括熔断策略的设置、熔断后处理逻辑、以及在Sentinel控制台中观测熔断效果。

什么是熔断降级

首先我们需要认识到微服务架构的一大特点就是服务被拆分地非常细,所以一个可供前端使用的、完整的接口,调用经常会需要涉及到多个微服务,比如说一个获取订单详情的接口,开放给前端的就是单单一个接口,但是这个接口里面可能调用了订单数据、然后同时还调用了商品的接口、用户的接口,最后把数据聚合后返回给前端。

假设其中有某个接口突然坏掉了,比如说因为各种原因(比如缓存失效,数据库崩溃等)导致响应时间过长,那么所有需要调用到此接口的其他服务将全部“卡死”在这儿了,随之而来的就是整个系统逐渐把所有网络连接挂起,服务器连接数暴增,最后系统崩溃了,通常这种情况叫做雪崩。

而熔断降级就是解决此类问题的,它可以以响应时间、异常比例或次数等多个纬度来定制熔断规则,即达到设定的条件后,马上把该服务熔断,让其他调用者马上知道这个服务暂时不可用,并执行自己的应对措施,从而保证系统的整体稳定可用。因为这样子的整体稳定是一种“降级”的稳定,所以我们一般把它称为熔断降级。

在SpringCloud中使用Sentinel的熔断功能

我们在之前章节中已经熟悉了SpringCloud GateWay中使用Sentinel流控功能,由于目前的版本Sentinel并没有为网关去实现熔断功能,所以在本章中我主要是在每个微服务中去使用熔断。

首先,在工程中添加 由 SpringCloud 集成的 Sentinel  

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

完整pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.zjf.csdn</groupId>
	<artifactId>combat-provider</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<description>zjf微服务实战</description>
	<name>combat-provider</name>
	<url>https://blog.csdn.net/u011177064</url>

	<properties>
		<!-- Dependency Versions -->
		<spring.boot.version>2.1.0.RELEASE</spring.boot.version>
		<spring.cloud.version>Greenwich.SR2</spring.cloud.version>
		<spring.cloud.alibaba.version>2.1.0.RELEASE</spring.cloud.alibaba.version>
	</properties>

	<dependencies>
		<dependency>
		    <groupId>com.alibaba.cloud</groupId>
		    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
		</d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值