springboot 整合sentinel的示例代码

网友投稿 423 2022-08-29


springboot 整合sentinel的示例代码

目录1. 安装sentinel2.客户端连接

1. 安装sentinel

下载地址:https://github.com/alibaba/Sentinel/releases/tag/1.7.0 ,由于我无法下载,所以使用docker安装,

yuchunfang@yuchunfangdeMacBook-Pro ~ % docker pull bladex/sentinel-dashboard:1.7.0

yuchunfang@yuchunfangdeMacBook-Pro ~ % docker run --name sentinel -d -p 8858:8858 bladex/sentinel-dashboard:1.7.0

登录地址,默认端口是8080,由于我的已被占用,所以使用8858,http://localhost:8858

账号密码:sentinel/sentinel,能够打开访问页面,说明安装成功。

2.客户端连接

1. 准备springboot项目,在pom中引入sentinel

com.alibaqOaytRba.cloud

spring-cloud-starter-alibaba-sentinel

2.2.5.RELEASE

2.配置文件配置服务器地址信息

spring.cloud.sentinel.transport.dashboard=localhost:8858

spring.cloud.sentinel.transport.heartbeat-interval-ms=500

spring.cloud.sentinel.eager=true

3.自定义异常提示信息

package org.example.config;

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;

import com.alibaba.csp.sentinel.slots.block.BlockException;

import com.alibaba.csp.sentinel.slots.block.flow.FlowExcqOaytReption;

import org.springframework.http.HttpStatus;

import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@Component

public class SentinelExceptionHandler implements BlockExceptionHandler {

@Override

public void handle(HttpServletRequest httpServletRequest, HttpServletResponse response, BlockException e) throws Exception {

response.setStatus(HttpStatus.TOO_MANY_REQUEhttp://STS.value());

response.setContentType("application/json;charset=utf-8");

response.qOaytRgetWriter().print("sentinel 限流。。。");

}

}

BlockException包含很多个子类,分别对应不同的场景:

异常                       说明FlowException             限流异常ParamFlowException        热点参数限流的异常DegradeException          降级异常AuthorityException        授权规则异常SystemBlockException      系统规则异常

4.在sentinel中配置限流的接口

当客户端连接好sentinel以后,首页会增加一列客户端的服务,在其中增加流控规则,其中资源名为接口地址,配置阀值,查看是否生效,可以配置流控,降级,热点等相关配置,默认情况下,发生限流、降级、授权拦截时,都会进入自定义异常。

可以看到当配置的请求地址访问频率大于设置的阀值时,流控生效,起到保护服务器的作用


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python读取csv文件并把文件放入一个list中脚本实例(python list保存为csv)
下一篇:python封装安卓查找元素方法V1.0
相关文章

 发表评论

暂时没有评论,来抢沙发吧~