SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程

Sentinel概述

官网:https://github.com/alibaba/Sentinel

Sentinel是分布式系统的流量防卫兵。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:

  • 丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
  • 完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
  • 广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
  • 完善的 SPI 扩展点: Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第1张图片

Sentinel 分为两个部分:

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

下载:

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

下载sentinel-dashboard-1.7.0.jar到本地。运行前提:java8+环境,8080端口不能被占用。
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第2张图片
访问:localhost:8080,账号密码均为sentinel
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第3张图片

演示工程

新建cloudalibaba-sentinel-service8401模块

引入依赖:


<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>cloud2020artifactId>
        <groupId>pers.zhang.springcloudgroupId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <modelVersion>4.0.0modelVersion>

    <artifactId>cloudalibaba-sentinel-service8401artifactId>

    <dependencies>
        <dependency>
            <groupId>pers.zhang.springcloudgroupId>
            <artifactId>cloud-api-commonsartifactId>
            <version>${project.version}version>
        dependency>
        
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
        dependency>
        
        <dependency>
            <groupId>com.alibaba.cspgroupId>
            <artifactId>sentinel-datasource-nacosartifactId>
        dependency>
        
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-sentinelartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-openfeignartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-actuatorartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-devtoolsartifactId>
            <scope>runtimescope>
            <optional>trueoptional>
        dependency>
        <dependency>
            <groupId>cn.hutoolgroupId>
            <artifactId>hutool-allartifactId>
            <version>4.6.3version>
        dependency>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

    dependencies>

project>

配置:application.yml

server:
  port: 8401

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos: 
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8080 #控制台
        port: 8719   #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
        
management:
  endpoints:
    web:
      exposure:
        include: '*'

启动类:

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

Controller:

@RestController
public class FlowLimitController {
     
    
    @GetMapping("/testA")
    public String testA() {
     
        return "------testA";
    }

    @GetMapping("/testB")
    public String testB() {
     
        return "------testB";
    }
}

启动Nacos,启动Sentinel,启动8401微服务:
在这里插入图片描述
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第4张图片
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第5张图片
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程_第6张图片

你可能感兴趣的:(Sentinel,安装,概述)