Sentinel简介

Posted Firm陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sentinel简介相关的知识,希望对你有一定的参考价值。

Sentinel是阿里开源的项目,提供了流量控制,熔断降级,系统负载包含等多个维度来保障服务之间的稳定性。
Sentinel主要特性:

Sentinel与Hystrix的区别:
关于Sentinel与Hystrix的区别详细:https://developer.aliyun.com/article/633786
总结:

Hystrix常用的线程池隔离会造成线程上下文切换的overhead比较大;Hystrix使用的信号量对某个资源调用的并发数进行控制,效果不错,但是无法对满调用进行自动降级;Sentinel通过并发线程数的流量控制提供信号量隔离的功能。此外Sentinel支持熔断降级维度更多,可对多种指标进行流控、熔断,且提供了实时监控和控制面板,功能更为强大。
Sentinel分为两个部分:

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

1、下载sentinel Dashboard,https://github.com/alibaba/sentinel/releases
2、cmd 运行java -jar sentinel-dashboard-1.7.1.jar。
3、访问http://localhost:8080,账户密码都是sentinel。


简单使用
1,新建项目
2,POM文件

<dependencies>
        <!--nacos客户端 服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--sentinel 流量监控,服务熔断,服务降级等-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--持久化-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--web 监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

3,YML文件

server:
  port: 6001
spring:
  application:
    name: sentienel-dashboard-service
  cloud:
    nacos:
      discovery:
        #nacos服务注册中心地址
        server-addr: localhost:8848
    sentinel:
      transport:
        #sentinel dashboard 地址
        dashboard: localhost:8080
        #默认8179端口
        port: 8179

#监控暴露 启动服务访问http://localhost:port/actuator/sentinel会返回json信息,说明已经整合好了Sentinel
management:
  endpoints:
    web:
      exposure:
        include: "*"

4,主启动类

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

5,业务类

@RestController
public class SentinelController 
    @GetMapping("/testA")
    public String getA()
        return "test A";
    

    @GetMapping("/testB")
    public String getB()
        return "test B";
    

访问http://localhost:6001/testB

以上是关于Sentinel简介的主要内容,如果未能解决你的问题,请参考以下文章

Sentinel.01.Sentinel简介及简单使用

Sentinel简介

Sentinel简介

Sentinel服务熔断简介与实践

Sentinel

Sentinel系统规则与授权规则简介与实践