springboot 整合sentinel的示例代码

 更新时间:2022年02月10日 08:39:23   作者:yuchunfanger  
本文主要介绍了springboot 整合sentinel的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

        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.FlowException;
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_REQUESTS.value());
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().print("sentinel 限流。。。");
    }
}

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

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

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

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

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

到此这篇关于springboot 整合sentinel的示例代码的文章就介绍到这了,更多相关springboot 整合sentinel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java多线程面试题之交替输出问题的实现

    Java多线程面试题之交替输出问题的实现

    本文主要介绍了Java多线程面试题之交替输出问题的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringCloud Feign远程调用实现详解

    SpringCloud Feign远程调用实现详解

    Feign是Netflix公司开发的一个声明式的REST调用客户端; Ribbon负载均衡、 Hystrⅸ服务熔断是我们Spring Cloud中进行微服务开发非常基础的组件,在使用的过程中我们也发现它们一般都是同时出现的,而且配置也都非常相似
    2022-11-11
  • 在IntelliJ IDEA中.idea文件是什么可以删除吗

    在IntelliJ IDEA中.idea文件是什么可以删除吗

    相信有很多小伙伴,在用idea写java代码的时候,创建工程总是会出现.idea文件,该文件也从来没去打开使用过,那么它在我们项目里面,扮演什么角色,到底能不能删除它呢?这篇文章主要介绍了在IntelliJ IDEA中.idea文件是什么可以删除吗,需要的朋友可以参考下
    2024-01-01
  • Java反射机制核心类Class、Constructor、Method、Field详解

    Java反射机制核心类Class、Constructor、Method、Field详解

    反射机制是Java语言的一项强大特性,允许程序在运行时动态地加载、探知和使用类或者对象的信息,这篇文章主要介绍了Java反射机制核心类Class、Constructor、Method、Field的相关资料,需要的朋友可以参考下
    2025-12-12
  • MyBatis-Plus动态表名使用selectPage方法不生效问题解析与解决方案

    MyBatis-Plus动态表名使用selectPage方法不生效问题解析与解决方案

    MyBatis-Plus是MyBatis的增强工具,动态表名是MyBatis-Plus的一个重要功能之一,一些开发者在使用selectPage方法时可能会遇到动态表名不生效的问题,本文将深入分析这个问题的原因,并提供相应的解决方案,需要的朋友可以参考下
    2023-12-12
  • 使用Jenkins来构建SVN+Maven项目的实现

    使用Jenkins来构建SVN+Maven项目的实现

    这篇文章主要介绍了使用Jenkins来构建SVN+Maven项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java创建线程的两种方式

    Java创建线程的两种方式

    这篇文章主要介绍了Java创建线程的两种方式,针对Java创建线程的两种方式进行比较,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • IDEA的Swing可视化插件JFormDesigner详解

    IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧
    2022-06-06
  • Maven远程仓库地址修改实现解析

    Maven远程仓库地址修改实现解析

    这篇文章主要介绍了Maven远程仓库地址修改实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • spring boot--从controller到DAO操作

    spring boot--从controller到DAO操作

    这篇文章主要介绍了spring boot--从controller到DAO操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论