sentinel分布式系统的流量防卫兵

首先在根目录下开启cmd黑窗口启用jar文件

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar xxxxx.jar

1.添加依赖

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

2.书写配置文件

3.代码

4.

运行成功后

在sentinel的界面上就会看到如下图所示,点击流控   点击新增之后,继续访问页面同时点击多次就会出现熔断,这个垄断是我们在后台写的

blockHandlerMethod方法里

 点击降级

 降级是通常是为异常设置的,设置好降级之后,一般我们要删除流控设置的东西。要不然时间间隔效果看不出来。设置id为1的时候出现异常

 

多次访问id为1就会出现下图所示

设置id为2的不是异常,没过间隔30秒访问id为2也会出现

过了30秒之后才会成功访问

程序运行自动设置限流或者降级

RestTemplate支持 ,只要是用到RestTemplate类,sentinel会自动加到簇点链路上

和下图对应

 

 

步骤如下:

1.创建ExceptionUtil类

注意:不要导错包,容易找不到类

package com.yh.util;

import com.alibaba.cloud.sentinel.rest.SentinelClientHttpResponse;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.alibaba.fastjson.JSON;
import com.yh.entry.ShopProduct;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.stereotype.Component;

/**
 * @program: springcloud-parent
 * @description: s
 *
 * @create: 2021-07-15 16:26
 **/

@Component
public class ExceptionUtil {

   public static ClientHttpResponse fallback(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException exception){
       return new SentinelClientHttpResponse(JSON.toJSONString(
               new ShopProduct(1l,"服务流量控制兜底的数据",5555.0,1000l)));

   }

    public static ClientHttpResponse handlerException(HttpRequest request,byte[] body, ClientHttpRequestExecution execution, BlockException exception){
        return new SentinelClientHttpResponse(JSON.toJSONString(
                new ShopProduct(1l,"熔断降级控制兜底的数据",5555.0,1000l)));

    }


}

在主启动类上加上注解,方法名要和创建的 ExceptionUti的方法名字一致

 openfeign的支持

在配置里多加3行代码,是openfeign让sentinel管理所需要的

 

创建一个实现类继承所需要的openfeign的方法

 openfeign的接口

实现类

  运行成功后如下图所示

 

当设置降级或者流控之后进行操作如下图所示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值