Sentinel 流控第一步

sentinel阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助保障微服务的稳定性。

流量控制示意

流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状。

资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。

只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。

规则

围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。

流量控制有以下几个角度:

  • 资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
  • 运行指标,例如 QPS、线程池、系统负载等;
  • 控制的效果,例如直接限流、冷启动、排队等;

Sentinel 的设计理念是可以自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

本系列使用官方提供的控制台界面进行接口的控制以及概念介绍,并完成服务的管理。

项目配置

基于上一篇服务治理的项目,服务提供者增加如下依赖:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-sentinel
    2.2.1.RELEASE


    org.springframework.boot
    spring-boot-starter-actuator

然后配置增加两项:

spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080
management:
  endpoints:
    web:
      exposure:
        include: '*'

dashboard指向sentinel服务,代码中指向我本机安装的sentinel,端口默认是8080。

安装sentinel

sentinel jar 程序下载后,使用java -jar sentinel-dashboard-1.7.2.jar运行即可,然后使用浏览器访问,端口默认是8080,用户名密码分别默认都是sentinel
如果要更改端口和登录用户数据,使用java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar命令,其中-Dserver.port=8080用于更改端口。
用户可以通过如下参数进行配置:

  • -Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel;
  • -Dsentinel.dashboard.auth.password=123456 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel;
  • -Dserver.servlet.session.timeout=7200 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;
登录

登录成功后,如果有服务运行,即可看到如下图所示的监控效果。其中provider就是上一篇搭建的provider服务的名字。(上一篇项目中暴露了一个localhost:8081/index接口,访问几次即可出现效果)

运行效果

代码地址
本文是流量控制的第一步,搭建环境,后续回持续更新流量控制的限流、熔断机制等内容。如果喜欢,点个关注吧。♥

你可能感兴趣的:(Sentinel 流控第一步)