SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)

十八、SpringCloud AlibabaSentinel实现熔断与限流

1、Sentinel

  • 官网

    https://github.com/alibaba/Sentinel

    中文:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

  • 是什么

    SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第1张图片

    SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第2张图片

  • 去哪下

    https://github.com/alibaba/Sentinel/releases

    SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第3张图片

  • 能干嘛

    SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第4张图片

  • 怎么玩

    • https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_sentinel

    • 服务使用中的各种问题

      • 服务雪崩
      • 服务降级
      • 服务熔断
      • 服务限流

2、安装Sentinel控制台

  • sentinel组件由2部分构成

    SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第5张图片

    • 后台
    • 前台8080
  • 安装步骤

    • 下载 https://github.com/alibaba/Sentinel/releases 下载到本地sentinel-dashboard-1.7.0.jar

    • 运行命令

      • 前提

        • java8环境OK
        • 8080端口不能被占用
      • 命令

        SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第6张图片

    java -jar sentinel-dashboard-1.7.0.jar

    • 访问sentinel管理界面

      • http://localhost:8080

        SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第7张图片

    • 登录账号密码均为sentinel

3、初始化演示工程

  • 启动Nacos8848成功 http://localhost:8848/nacos/#/login

  • Module

    • cloudalibaba-sentinel-service8401

    • POM

      
      <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <parent>
              <artifactId>cloud190805artifactId>
              <groupId>com.atguigu.springcloudgroupId>
              <version>1.0-SNAPSHOTversion>
          parent>
          <modelVersion>4.0.0modelVersion>
      
          <artifactId>cloudalibaba-sentinel-service8401artifactId>
      
      
          
          
              com.alibaba.cloud
              spring-cloud-starter-alibaba-nacos-discovery
          
          
          
              com.alibaba.csp
              sentinel-datasource-nacos
          
          
          
              com.alibaba.cloud
              spring-cloud-starter-alibaba-sentinel
          
          
          
              org.springframework.cloud
              spring-cloud-starter-openfeign
          
          
          
              org.springframework.boot
              spring-boot-starter-web
          
          
              org.springframework.boot
              spring-boot-starter-actuator
          
          
          
              org.springframework.boot
              spring-boot-devtools
              runtime
              true
          
          
              cn.hutool
              hutool-all
              4.6.3
          
          
              org.projectlombok
              lombok
              true
          
          
              org.springframework.boot
              spring-boot-starter-test
              test
          
      
      
      
      
      
      
    • YML

      server:
        port: 8401
      
      spring:
        application:
          name: cloudalibaba-sentinel-service
        cloud:
          nacos:
            discovery:
              #Nacos服务注册中心地址
              server-addr: localhost:8848
          sentinel:
            transport:
              #配置Sentinel dashboard地址
              dashboard: localhost:8080
              #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
              port: 8719
      
      management:
        endpoints:
          web:
            exposure:
              include: '*'
      
      
    • 主启动

      package com.atguigu.springcloud.alibaba;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
      import org.springframework.cloud.openfeign.EnableFeignClients;
      

      @EnableDiscoveryClient
      @SpringBootApplication
      public class MainApp8401
      {
      public static void main(String[] args) {
      SpringApplication.run(MainApp8401.class, args);
      }
      }

      
      
      
    • 业务类FlowLimitController

      package com.atguigu.springcloud.alibaba.controller;
      
      import com.atguigu.springcloud.alibaba.service.OrderService;
      import org.springframework.stereotype.Service;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.RestController;
      
      import javax.annotation.Resource;
      
      
      @RestController
      public class FlowLimitController
      {
      
          @GetMapping("/testA")
          public String testA()
          {
              return "------testA";
          }
      
          @GetMapping("/testB")
          public String testB()
          {
              return "------testB";
          }
      }
      
      
  • 启动Sentinel8080 java -jar sentinel-dashboard-1.7.0.jar

  • 启动微服务8401

  • 启动8401微服务后查看sentienl控制台

    • 空空如也,啥都没有

      SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第8张图片

    • Sentinel采用的懒加载说明

      执行一次访问即可

      http://localhost:8401/testA

      http://localhost:8401/testB

      效果

      SpringCloud第十八章AlibabaSentinel实现熔断与限流(安装Sentinel控制台)_第9张图片

    • 结论

      sentinel8080正在监控微服务8401

你可能感兴趣的:(spring,cloud,alibaba,微服务)