SpringCloudAlibaba之Sentinel的使用详解

开篇讲明使用的版本

springboot 2.1.4.RELEASE
spring-cloud-starter-alibaba 0.9.0.RELEASE (SpringCloudAlibaba无特殊说明都是使用这个版本)

一、Sentinel概念篇

1.1、SpringCloudAlibabaSentinel到底能干嘛

    官方解释: 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

        Sentinel 具有以下特征:

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

  • 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

  • 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

      更多解释可以查看SpringCloudAlibabaSentinel官网 https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

二、安装sentinel

2.1、下载sentinel

2.2、命令方式启动

java -jar sentinel-dashboard-1.5.1.jar

三、开始使用sentinel

3.1、添加maven依赖




    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
         
    
    com.bean
    spring-cloud-alibaba-feign
    0.0.1-SNAPSHOT
    spring-cloud-alibaba-feign
    Demo project for Spring Boot
    
        1.8
        Greenwich.SR1
    
    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-sentinel
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                0.9.0.RELEASE
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

3.2、向sentinel控制台注册 并向nacos中心注册

spring:
  application:
    name: spring-cloud-alibaba-feign
  cloud:
    #向nacos中心注册服务
    nacos:
      discovery:
        server-addr: localhost:8848
    #向sentinel控制台注册服务
    sentinel:
      transport:
        dashboard: localhost:8080
      #取消控制台懒加载
      eager: true
management:
  endpoints:
    web:
      exposure:
        include: '*'
server:
  port: 8970

3.3、编写测试使用的controller

/**
* @Description //TODO
* @Date $ $
* @Author huangwb
**/
@RestController
public class UserController {
    @GetMapping("/user")
    public String getUser() {
        return "一叶知秋hwb";
    }
}

3.4、启动项目

访问 http://localhost:8848/nacos发现微服务项目已经注册

SpringCloudAlibaba之Sentinel的使用详解_第1张图片

访问 http://127.0.0.1:8080/#/dashboard/home发现已经注册成功、如果没有成功注册可能是没有取消控制台懒加载的方式,需要访问几次你自己的接口。 如果实时监控没显示出来也请多刷新你的测试接口 多访问几次。

SpringCloudAlibaba之Sentinel的使用详解_第2张图片

3.5、对普通接口进行流控

点击左侧的簇点链路

SpringCloudAlibaba之Sentinel的使用详解_第3张图片

SpringCloudAlibaba之Sentinel的使用详解_第4张图片

然后点击新增,你就会看见一个流控规则

 

然后再去访问你的接口作死的刷新、会在规定阈值内只执行一次,后面的会执行快速失败的操作。

其他的可以自行去测试一下 在这里就不过多去测试了。

 

你可能感兴趣的:(springcloud学习)