【SpringCloud】之Sentinel--服务容错的应用

这篇具有很好参考价值的文章主要介绍了【SpringCloud】之Sentinel--服务容错的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

 🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《SpringCloud开发之Sentinel--服务容错的应用》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

前言

        在上一期的博客分享中我们对其网关的概念基知识有了一个初步的了解,以及还对其网关的路由进行了一个初步的了解。本期博客基于上一期的博客进行一个扩展延伸对其使用示例,本期带来的是Sentinel--服务容错的应用。

一、 什么是Sentinel

1. 基本概述

         Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量 为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。这个框架的主要目标是在分布式系统中解决服务的可用性、稳定性和性能问题。它能够帮助开发者在复杂的微服务架构中实现对服务的保护和管理。

2. 主要特征

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即 突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

  • 完备的实时监控:Sentinel 提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒 级数据, 甚至 500 台以下规模的集群的汇总运行情况。

  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块, 例如与 Spring Cloud、Dubbo、gRPC 的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

  • 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

3.  主要功能

        Sentinel的主要功能就是容错,主要体现为下面这三个:

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

  1. 流量控制 Sentinel 提供了各种流量控制的策略,包括基于 QPS(每秒查询率)的流量控制、并发线程数控制等,可以有效地对服务的访问进行限制和管理,防止突发流量对系统造成影响。

  2. 熔断降级 通过定义规则和监控系统状态,Sentinel 能够在服务出现故障或超出阈值时,进行熔断降级,避免故障的传递和影响到整个系统,保障核心服务的可用性。

  3. 系统负载保护 Sentinel 可以根据系统负载情况动态调整流量控制策略,防止因为负载过重而导致系统性能下降。

  4. 实时监控和统计 Sentinel 提供了实时的监控和统计功能,可以实时查看服务的运行状态和流量情况,帮助开发者及时发现问题并进行调整。

  5. 灵活扩展性 Sentinel 提供了灵活的扩展点和插件机制,可以根据具体业务场景定制化定制相关的策略和功能。

        总之通过以上功能,Sentinel 可以帮助开发者有效地保护和管理分布式系统中的服务,提升系统的稳定性、可用性和性能。在微服务架构中,Sentinel 扮演着重要的角色,为服务的健壮性提供了强有力的支持。

4. 主要组成部分

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。

  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等 应用容器。

二、微服务集成Sentinel

1. 导入pom依赖

        为微服务集成Sentinel非常简单, 只需要加入Sentinel的依赖即可。我们在生产者的pom文件中引入

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

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

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

2. 安装Sentinel控制台

        Sentinel 提供一个轻量级的控制台, 它提供机器发现、单机资源实时监控以及规则管理等功能。         

2.1 下载jar包,解压到文件夹

        网址:Releases · alibaba/Sentinel · GitHub

2.2  启动控制台

# 直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)
java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar

#参考1
java -jar sentinel-dashboard-1.8.1.jar --server.port=8080
#参考2
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

        启动与启动成功 

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

 2.3 修改shop-order ,在里面加入有关控制台的配置(在yml文件中配置)

        因为我们所有的服务都是在nacos中所以我们要进行对应的配置

    sentinel:
      transport:
        port: 8719
        dashboard: localhost:9999
#        是否提前加载
      eager: true

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

 2.4  通过浏览器访问localhost:8080 进入控制台 ( 默认用户名密码是 sentinel/sentinel )

        我们启动服务进行网页访问,这是我们启动后进行访问的登陆界面

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

         我们输入账号和密码进行登陆进入首页

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

补充:

1. 使用原理

        了解控制台的使用原理:

 【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

2.5 使用测试

        我们启动生产者的服务,访问生成者的请求方法。

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

        由上述动图所示,我们的多次请求一个请求方法,我们到Sentinel控制台官网中可以对其服务进行一个监管查看

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

三、Sentinel规则

安装测试工具

        我们采用jmeter工具进行模拟测试,网址如下

Apache JMeter - Apache JMeter™

下载进行解压,在bin目录下的又一个jmeter.bat是我们window进行启动使用的,双击使用。启动后的黑窗口别叉掉,启动之后会自动弹出一个窗口        

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

 简单使用

        我们新建一个线程组进行简单测试

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端 【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

        然后我们进行线程测试 

1. 流量规则

        流量控制,其原理是监控应用流量的QPS(每秒查询率) 或并发线程数等指标,当达到指定的阈值时 对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

         第1步: 点击簇点链路,我们就可以看到访问过的接口地址,然后点击对应的流控按钮,进入流控规则配置页面。新增流控规则界面如下:

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

        方法测试 

【SpringCloud】之Sentinel--服务容错的应用,SpringCloud,spring cloud,spring,后端

        右上图所示,我们一秒访问两次则第二次会显示限流的提示,因为我设置的是一秒只允许访问一个。 

 选择说明

资源名唯一名称,默认是请求路径,可自定义 针对来源:指定对哪个微服务进行限流,默认指default,意思是不区分来源,全部限制

阈值类型/单机阈值

  • QPS(每秒请求数量): 当调用该接口的QPS达到阈值的时候,进行限流

  • 线程数:当调用该接口的线程数达到阈值的时候,进行限流

是否集群暂不需要集群 接下来我们以QPS为例来研究限流规则的配置。文章来源地址https://www.toymoban.com/news/detail-797451.html

到了这里,关于【SpringCloud】之Sentinel--服务容错的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【SpringCloud】11、Spring Cloud Gateway使用Sentinel实现服务限流

    1、关于 Sentinel Sentinel 是阿里巴巴开源的一个流量防卫防护组件,可以为微服务架构提供强大的流量防卫能力,包括流量控制、熔断降级等功能。Spring Cloud Gateway 与 Sentinel 结合,可以实现强大的限流功能。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近

    2024年02月01日
    浏览(54)
  • 【SpringCloud Alibaba】(六)使用 Sentinel 实现服务限流与容错

    今天,我们就使用 Sentinel 实现接口的限流,并使用 Feign 整合 Sentinel 实现服务容错的功能,让我们体验下微服务使用了服务容错功能的效果。 因为内容仅仅围绕着 SpringCloud Alibaba技术栈展开,所以,这里我们使用的服务容错组件是阿里开源的 Sentinel。 当然,能够实现服务容错

    2024年02月14日
    浏览(46)
  • SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

    目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件,在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 @SentinelResource的使用 Feign整合Sentinel 由于Hystrix已经停

    2024年01月19日
    浏览(42)
  • SpringCloud学习6(Spring Cloud Alibaba)断路器Sentinel熔断降级

    SpringCloud、SpringCloudAlibaba、SpringBoot版本选择。为了避免各种千奇百怪的bug,我们还是采用官方推荐的毕业版本。 修改tomcat配置最大线程数 引入测试依赖 编写测试代码 这里同时我们在浏览器去请求该地址,响应会变得很慢 测试结论:此时会发现由于thread接口囤积大量请求,

    2023年04月08日
    浏览(50)
  • Spring Cloud 容错机试 Hystrix 服务降级 RestTemplate:

    雪崩效应:   如果短信服务炸了后面的所有服务就会起连锁反应造成全部服务挂掉 , 这就是雪崩效应 , 那么其实短信服务又不是我们主要业务 , 这个时候我们可以采用服务降级 , 服务降级就是暂时的把短信服务停掉能用就返回不能用就返回个错误 , 但是它也不会影响

    2024年02月07日
    浏览(43)
  • 微服务集成spring cloud sentinel

    目录 1. sentinel使用场景 2.  sentinel组成 3. sentinel dashboard搭建  4. sentinel客户端详细使用 4.1 引入依赖 4.2 application.properties增加dashboard注册地址 4.3 手动增加限流配置类 4.4 rest接口及service类 4.5 通过dashboard动态配置限流规则 限流、熔断、监控、动态规则配置 由两部分组成, 第一

    2024年02月11日
    浏览(37)
  • 【Spring Cloud Alibaba】Sentinel 服务熔断与流量控制

    目录 前言 一、Sentinel 入门 1.1 什么是 Sentinel ? 1.2 微服务集成 Sentinel  1.3 安装Sentinel控制台 二、Jmeter 压力测试工具 2.1 Jmeter 介绍  2.2 Jmeter 安装 2.3 接口测试 三、Sentinel 使用 3.1 限流规则 3.1.1 warm up(预热模式) 3.1.2 排队等待 3.1.3 关联 3.1.4 链路 3.2 熔断规则 3.3 服务降级     

    2024年02月01日
    浏览(69)
  • 微服务之Spring Cloud Alibaba Sentinel介绍与下载(详细方法)

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。 2012 年,Sentinel 诞生,主要功能为入口流量控制。 2013-2017 年,Sentinel 在阿里巴巴

    2024年02月11日
    浏览(53)
  • Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用

    本文小新为大家带来 微服务组件Sentinel介绍与使用 相关知识,具体内容包括 分布式系统存在的问题 , 分布式系统问题的解决方案 , Sentinel介绍 , Sentinel快速开始 (包括: API实现Sentinel资源保护 , @SentinelResource注解实现资源保护 ), Sentinel控制台 , Spring Cloud Alibaba整合

    2024年01月17日
    浏览(53)
  • Sentinel nacos spring cloud 持久化配置---分布式/微服务流量控制

    下载地址:https://github.com/alibaba/Sentinel/releases 本次版本:1.8.6 上一篇文章已介绍 我们先说目标,为各位看官节省不匹配的时间 0、使用sentinel流控中心 1、使用nacos做配置中心 5、使用spring-cloud-starter-alibaba-sentinel做持久化配置 https://github.com/OrderDong/microservice-boot 分支:microserv

    2024年02月16日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包