Sentinel学习笔记(一)SpringBoot集成sentinel

sentinel简介
随着分布式系统变得越来越流行,服务之间的可靠性变得比以往任何时候都更加重要。Sentinel以“流”为切入点,并在流控制, 流量整形,电路中断和系统自适应保护等多个领域工作,以确保微服务的可靠性和弹性。

Sentinel具有以下功能:

丰富的适用场景:Sentinel已在阿里巴巴中广泛使用,并且在过去10年中涵盖了Double-11(11.11)购物节中几乎所有的核心场景,例如“ Second Kill”需要将突发流量限制为满足系统容量,消息峰值削波和谷值填充,为不可靠的下游服务而中断电路,集群流量控制等。
实时监控:Sentinel还提供了实时监控功能。您可以实时查看单个计算机的运行时信息,以及少于500个节点的群集的聚合运行时信息。
广泛的开源生态系统:Sentinel提供与常用框架和库(如Spring Cloud,Dubbo和gRPC)的现成集成。您只需将适配器依赖项添加到服务中即可轻松使用Sentinel。
多种语言支持:Sentinel已为Java,Go和C ++提供了本机支持。
各种SPI扩展:Sentinel提供了易于使用的SPI扩展接口,使您可以快速自定义逻辑,例如,自定义规则管理,调整数据源等。
功能概述:
Sentinel学习笔记(一)SpringBoot集成sentinel_第1张图片

要集成sentinel的步骤分为两部分,一部分是sentinel控制台安装启动,一部分是客户端集成。

sentinel控制台安装启动

简介:

Sentinel提供了一个简单的独立仪表板,您可以在其上监视应用程序并实时配置规则。它包括以下功能:

  • 机器发现
  • 单节点或少于500个节点的群集的资源监视
  • 规则管理
  • 仪表板

如下图所示:
Sentinel学习笔记(一)SpringBoot集成sentinel_第2张图片
下面来开始安装控制台:

1、下载Sentinel服务端jar

访问:https://github.com/alibaba/Sentinel/releases 下载 sentinel-dashboard-1.8.0.jar.

Sentinel学习笔记(一)SpringBoot集成sentinel_第3张图片

2、启动Sentinel服务端后台管理
执行命令:java -Dserver.port=8080 -jar sentinel-dashboard-1.8.1.jar 默认8080端口,可以通过port指定其他端口

3、访问 localhost:8080
默认登录用户:sentinel/sentinel
Sentinel学习笔记(一)SpringBoot集成sentinel_第4张图片

客户端集成

在项目的pom.xml文件中加入依赖:

     <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

在配置文件yml加入如下配置:

server:
  port: 2222
spring:
  application:
    name: agensgraph
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080
      eager: true

编写一个接口来测试限流效果:


    @Controller
    public class SentinelController {
        @RequestMapping("/AgensGraphSqlTestController/testSentinel")
        @ResponseBody
        public String sentinel(){
            return "sentinel ....";
        }

启动工程后,在localhost:8080 sentinel控制台可看到客户端已经注册上去了:
Sentinel学习笔记(一)SpringBoot集成sentinel_第5张图片

访问项目路径 http://localhost:2222/AgensGraphSqlTestController/testSentinel触发接口,可以看到已经触发了,我这里点了两次
Sentinel学习笔记(一)SpringBoot集成sentinel_第6张图片
配置限流规则:
Sentinel学习笔记(一)SpringBoot集成sentinel_第7张图片
Sentinel学习笔记(一)SpringBoot集成sentinel_第8张图片
Sentinel学习笔记(一)SpringBoot集成sentinel_第9张图片

多次连续点击访问:http://localhost:2222/AgensGraphSqlTestController/testSentinel

每秒的前1次返回数据正常,后面如果访问得多了可以看到浏览器返回:
Blocked by Sentinel (flow limiting)
表示已经被限流了,集成成功

你可能感兴趣的:(sentinel,sentinel)