一、前言
作为构成Spring Cloud Alibaba微服务体系的关键组件之一,Sentinel提供了一种保护措施,从而保证服务不会因为请求量过大,引发雪崩效应(由于某一服务不可用,导致上游服务不可用,进而导致整个服务不可用)。在微服务时代,服务和服务之间的稳定性变得越来越重要,Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
二、Spring Cloud Alibaba集成Sentinel
部署准备
Sentinel分为两部分:
-
核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
-
控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器,该模块目前基于SpringBoot运行;
首先,先从github上下载稳定版本的Sentinel Dashboard,下载地址:https://github.com/alibaba/Sentinel/releases ,目前最新版本为1.8.2 ,下载到本地后,通过以下命令运行:
java -Dserver.port=8088 -jar sentinel-dashboard-1.3.0.jar
浏览器打开http://localhost:8088/ ,默认用户名和密码是:sentinel,至此,前期准备工作完成,接下来进入编码实现阶段。
编码实现
接下来,我们以前面已经开发好的spring-cloud-alibaba-dubbo-gateway,spring-cloud-alibaba-dubbo-consumer和spring-cloud-alibaba-dubbo-provider为基础,进行集成。
我们在spring-cloud-alibaba-dubbo-consumer的bootstrap.yml配置文件中添加以下核心配置:
spring:
sentinel