springcloud中间件:sentinel的简单使用

这篇具有很好参考价值的文章主要介绍了springcloud中间件:sentinel的简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简介

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

避免大批量的瞬时请求都打到服务上,将服务压垮。

Sentinel 具有以下特征:

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
  • 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
  • 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

二、如何使用

第一步:引入pom依赖
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
第二步:配置yml文件
spring:
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:8858 #配置自己的服务器或本地路由
第三步:测试使用

service层定义一个方法

Boolean test();

impl实现这个方法

    @SentinelResource(value = "test",blockHandler = "exceptionHandler")
    @Override
    public Boolean test() {
        return true;
    }

    public ResultUtil exceptionHandler(BlockException ex){
        return ResultUtil.success("请求过于频繁");
    }

在要进行限流的方法上加上 @SentinelResource注解

编写controller测试

 @GetMapping("/test")
    public ResultUtil test(){
        return ResultUtil.success(userService.test());
    }

@SentinelResource注解包含一下属性:

(1)vale

        资源名称,必需项,因为需要通过resource name找到对应的规则,这个是必须配置的。 ​ 定义资源名,该名称将会显示在控制台中,并且在定义流控以及熔断降级规则时,指定资源名称。

(2)entryType

        入口类型,可选项: EntryType.IN和EntryType.OUT(默认为 EntryType.OUT)
(3)blockHandler

        对应处理 BlockException 的函数名称,可选项。

(4)blockHandlerClass

        ​ blockHandler 函数默认需要和原方法在同一个类中。若希望使用其他类的函数,则可以指定 blockHandlerClass 为对应的类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

(5)fallback

        函数名称,可选项,仅针对降级功能生效(DegradeException)。fallback 函数的访问范围需要是 public,参数类型和返回类型都需要与原方法相匹配,并且需要和原方法在同一个类中。业务异常不会进入 fallback 逻辑。

(6)fallbackClass

        fallbackClass的应用和blockHandlerClass类似,fallback 函数默认需要和原方法在同一个类中。 ​ 若希望使用其他类的函数,则可以指定 fallbackClass 为对应的类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

(7)defaultFallback

        如果没有配置defaultFallback方法,默认都会走到这里来,默认的 fallback 函数名称,可选项,通常用于通用的 fallback 逻辑,默认 fallback 函数可以针对所有类型的异常(除了 exceptionsToIgnore 里面排除掉的异常类型)进行处理,若同时配置了 fallback 和 defaultFallback,则只有 fallback 会生效。

(8)exceptionsToIgnore

        用于指定哪些异常被排除掉,不会计入异常统计中,也不会进入 fallback 逻辑中,而是会原样抛出。

然后将项目部署到服务器上,启动

springcloud中间件:sentinel的简单使用

 去调用刚写的测试接口

springcloud中间件:sentinel的简单使用

springcloud中间件:sentinel的简单使用

 这里data为空是因为我进行了限流控制,设置为0,所以每次访问都是null,如果设为1就能访问到

springcloud中间件:sentinel的简单使用

 springcloud中间件:sentinel的简单使用

 文章来源地址https://www.toymoban.com/news/detail-502233.html

到了这里,关于springcloud中间件:sentinel的简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ActiveMQ消息中间件简介

    一、ActiveMQ简介   ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。   二、ActiveMQ应用场景 消息队列在大型电子商务类网

    2024年02月07日
    浏览(91)
  • 消息中间件相关知识简介

    一、消息中间件相关知识     1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的

    2024年02月10日
    浏览(80)
  • Springcloud中间件-----分布式搜索引擎 Elasticsearch

    该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 预计看完跟着练习5小时足够 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如:

    2024年02月08日
    浏览(60)
  • Java中支持分库分表的框架/组件/中间件简介

    列举一些比较常见的,简单介绍一下: sharding-jdbc(当当) TSharding(蘑菇街) Atlas(奇虎360) Cobar(阿里巴巴) MyCAT(基于Cobar) TDDL(淘宝) Vitess(谷歌) 首先,第一个,可能也是最常见最常用的,Sharding-JDBC,这个是最早的名字,现在已经发展成为ShardingSphere,生态,详细

    2024年02月10日
    浏览(41)
  • redux中间件的简单讲解

    中间件的作用: 就是在 源数据 到 目标数据 中间做各种处理,有利于程序的可拓展性,通常情况下,一个中间件就是一个函数,且一个中间件最好只做一件事情 数据源 -------- 中间件 -------- 中间件 -------- 中间件 -------- 目标数据 applyMiddleware applymiddleware将一堆函数封装成一个

    2024年02月07日
    浏览(37)
  • 【云原生技术】云计算中的数据库中间件简介

    云计算中的数据库中间件是位于客户端和数据库服务器之间的软件层,提供数据库操作的抽象、管理、优化和扩展功能。这些中间件可以简化数据库的管理,提高性能和安全性,同时使应用程序更容易与数据库进行交互。 主要功能 连接池管理 : 管理数据库连接,提供连接池

    2024年01月22日
    浏览(63)
  • 【中间件-Openjob】高性能任务调度框架Openjob简介及快速搭建

    一款分布式高性能任务调度框架,支持多种定时任务、延时任务、工作流设计、轻量级分布式计算、无限水平扩容,并具有较高的可伸缩性和容错性,以及完善权限管理、强大的告警监控、原生支持多语言。 基础信息 中文官网 :https://openjob.io/zh-Hans/ 开源地址 :https://githu

    2024年02月12日
    浏览(63)
  • 网络安全基础知识&中间件简单介绍

    apache-httpd tomcat iis lighttp nginx:不是用来web服务器,而是用来做反向代理(tps10w,优化tqs2020w) fastdf:FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以

    2023年04月16日
    浏览(49)
  • 【云原生进阶之PaaS中间件】第四章RabbitMQ-1-简介及工作模式

            RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。AMQP(Advanced Message Queue:高级消息队列协议)它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ 最初起源于

    2024年02月21日
    浏览(86)
  • SpringBoot--中间件技术-3:整合mongodb,整合ElasticSearch,附案例含代码(简单易懂)

    实现步骤: pom文件导坐标 yaml配置文件配置mongodb: 随便建一个pojo 测试: 装配MongoTemplate模板类,调用方法 整合MongoDB总结: 导坐标 写配置文件 核心类MongoTemplate调用 前提准备:数据库+ES 数据库建表语句: 实现步骤: pom文件到坐标 yaml配置文件 创建实体类: 对应数据库表

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包