spring cloud alibaba 之哨兵(sentinel)

sentinel (哨兵) 简介

# 官网
- https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_sentinel
# github
- https://github.com/alibaba/Sentinel/wiki

# 简介
- 随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点,在流量控制、断路、负载保护等多个领域开展业务,保障业务可靠性

linux 搭建 Sentinel Dashboard

  • 下载最新的sentinel jar(sentinel-dashboard-1.8.3.jar)
    https://github.com/alibaba/Sentinel/releases
    在这里插入图片描述

  • sentinel-dashboard启动和停止脚本编写
    # cd /usr/local/mysoft
    # mkdir sentinel
    将sentinel-dashboard-1.8.3.jar上传到目录/usr/local/mysoft/sentinel

    -------------------
    # sentinel-dashboard-1.8.3.jar是一个spring boot应用,可以通过java -jar直接启动(但不能后台运行)
    # java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.3.jar
    -------------------
    # 在目录/usr/local/mysoft/sentinel下,编写启动和停止sentinel dashboard脚本
    # mkdir logs
    # mkdir pid
    # touch startup.sh
    # touch shutdown.sh
    
  • startup.sh脚本

# vim startup.sh

# 启动Sentinel Dashboard服务脚本
nohup /usr/local/mysoft/jdk1.8.0_144/bin/java -Dlogging.file=/usr/local/mysoft/sentinel/logs/sentinel-dashboard.log -jar /usr/local/mysoft/sentinel/sentinel-dashboard-1.8.3.jar > /usr/local/mysoft/sentinel/logs/run.out 2>&1 &
echo $! > /usr/local/mysoft/sentinel/pid/runing.pid

  • shutdown.sh脚本
PID=$(cat /usr/local/mysoft/sentinel/pid/runing.pid)
kill -9 $PID
find /usr/local/mysoft/sentinel/pid -name "*.pid" -exec rm -rf {} \;
find /usr/local/mysoft/sentinel/logs -name "*.out" -exec rm -rf {} \;

使用sentinel哨兵

创建一个spring boot服务cloud-04-sentinel

  • 引入依赖
  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- sentinel(哨兵) 依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
    </dependencies>
  • 配置文件
server:
  port: 9004

spring:
  application:
    name: SENTINEL
  # sentinel哨兵配置
  cloud:
    sentinel:
      transport:
        # 应用与Sentinel控制台交互的端口 
        port: 8719
        # dashboard地址
        dashboard: 192.168.110.66:8080

  • 启动sentinel dashboard
# cd /usr/local/mysoft/sentinel

### 使用默认配置,java -jar启动(不能后台运行)
# java -jar sentinel-dashboard-1.8.3.jar

### 使用脚本startup.sh启动(后台运行)
# sh startup.sh
  • 启动后,浏览器访问:http://192.168.110.66:8080

  • 用户和密码默认都是:sentinel
    在这里插入图片描述
    在这里插入图片描述

  • 需要调用应用接口,才会有信息
    在这里插入图片描述

  • 刷新sentinel dashboard页面
    在这里插入图片描述

降级规则

资源名:接口路径
阈值类型:
    QPS:query-per-sencond 每秒查询请求数  
    并发线程数:每秒发起的并发线程数
单机阈值:每秒限制的最大请求数,超过这个数,就会触发相应的降级规则
流控模式:
    直接
    关联
    链路
流控效果:只有阈值类型为"QPS"才有
    快速失败:
    Warm up:
    排队等待:
  • 流控规则
    图片待补充
    例如阈值类型选的是:QPS,单机阈值为:2,代表每秒请求数超过2个,就会触发流控规则

    • 测试1
      图片待补充
      • 阈值类型(QPS)、单机阈值(2)、流控模式(直接)、流控效果(快速失败)
      • 向接口/sentinel/demo在1秒内连续发送请求,请求次数大于2,触发流控规则
        图片待补充
    • 测试2
      • 阈值类型(QPS)、单机阈值(2)、流控模式(直接)、流控效果(快速失败)
      • 向接口/sentinel/test在1秒内连续发送请求,请求次数大于2,触发流控规则,此时再访问/sentinel/demo时不可用
        图片待补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coo_lw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值