Spring Cloud 之 Sentinel简介与GATEWAY整合实现

这篇具有很好参考价值的文章主要介绍了Spring Cloud 之 Sentinel简介与GATEWAY整合实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

熔断

微服务架构的系统通常会包含多个微服务,各个微服务可能部署在不同的机器上并通过网络进行通信,那么就不可避免会遇到 “网络请求超时” 、“微服务不可用” 等问题,这就会进一步引起依赖它的微服务不可用,这样不断引发服务故障的现象称为『雪崩效应』,最终的结果是整个应用系统瘫痪。
为了解决上述问题,编程领域提出了熔断器:
使用熔断器模式,如果请求出现异常,所有请求都会直接返回,而不会等待或阻塞,这样可以减少资源的浪费。
熔断器所造成的这种现象也叫『快速失败(fast fall)』。

流控

限流功能指的是 Sentinel(类似于过滤器、拦截器的效果)在收到请求后,拒绝请求的放行(至 Controller),而是直接返回,从而减少对 Controller,乃至 Service 的触发执行。
熔断和限流的区别在于,熔断是确确实实发生了错误,而限流是人为(根据设置)强行让一部分请求被打回

Sentinel实现限流

Spring Cloud Alibaba Sentinel 可以分别用在服务的 “请求发起方” 和 “请求被调方”一般实现方式为:
在服务发起方,Sentinel 整合 OpenFeign 实现熔断功能;
在服务被调方,Sentinel 整合 Spring MVC 实现限流功能。
总结:流控针对provider,熔断降级针对consumer

Sentinel监控平台

下载地址:

https://github.com/alibaba/Sentinel/releases

sentinel spring cloud gateway,spring cloud,sentinel,gateway,1024程序员节
下载后使用java -jar xxx.jar 命令启动服务,Sentinel默认端口为8080,默认账号 :sentinel 默认密码:sentinel

gateway配置:

gateway中pom引入配置(已有配置参见Spring Cloud 之 GateWay简介及简单DEMO的搭建):

<!--引入sentinel进行服务降级熔断-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--gateway网关整合sentinel进行限流降级-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
        </dependency>

使用的其他版本

        <spring.cloud.version>Hoxton.SR8</spring.cloud.version>
       
        <spring.cloud.alibaba.version>2.2.3.RELEASE</spring.cloud.alibaba.version>
       
      
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>

bootstrap.yml追加sentinel配置;

server:
  port: 8081
spring:
  profiles:
    active: dev
  application:
    name: tt-sc-gateway
  cloud:
    #sentinel看板相关配置
    sentinel:
      eager: true
      transport:
        dashboard: 192.168.1.10:8080
        #SpringBoot项目与控制台做交互的端口,默认8719
        port: 8719
      #配置限流后响应内容
      scg:
        fallback:
          #两种模式:一种是response返回文字提示信息,一种是redirect,重定向跳转,同时配置跳转路径
          mode: response
          #配置响应状态码
          response-status: 555
          #响应体
          response-body: '{"code":555,"message":"你被限流了"}'

gateway启动成功后,可在sentinel监控平台中找到网关服务。

sentinel流控控制配置:

sentinel spring cloud gateway,spring cloud,sentinel,gateway,1024程序员节
资源名:路由id的名字Spring Cloud 之 Feign 简介及简单DEMO的搭建:

sentinel spring cloud gateway,spring cloud,sentinel,gateway,1024程序员节

流量 QPS(每秒查询率),每秒访问次数超过1次限流:

测试结果:

快速刷新访问后返回:

sentinel spring cloud gateway,spring cloud,sentinel,gateway,1024程序员节文章来源地址https://www.toymoban.com/news/detail-827762.html

到了这里,关于Spring Cloud 之 Sentinel简介与GATEWAY整合实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Spring Cloud Gateway集成sentinel进行网关限流

    本文使用版本如下:

    2024年02月09日
    浏览(38)
  • 【springcloud 微服务】Spring Cloud Alibaba整合Sentinel详解

    目录 一、前言 二、环境准备 2.1 部署sentinel管控台 2.1.1 官网下载sentinel的jar包 2.1.2 启动控制台

    2023年04月09日
    浏览(39)
  • 【合集】Spring Cloud 组件——架构进化史话 & Eureka,Nacos,OpenFeign,Ribbon,Sentinel,Gateway ,Seata+事务. . .

    Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态)。 注意: 首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解

    2024年02月08日
    浏览(31)
  • 【合集】Spring Cloud 组件——架构进化史话 & Eureka,Nacos,Apollo,OpenFeign,Ribbon,Sentinel,Gateway ,Seata+事务. . .

    Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态)。 注意: 首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解

    2024年02月03日
    浏览(72)
  • 09-微服务Sentinel整合GateWay

    在微服务系统中,网关提供了微服务系统的统一入口,所以我们在做限流的时候,肯定是要在网关层面做一个流量的控制,Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 Sentinel 1.6.0 引入了 Sentinel API Gateway Adapter Common 模块,此模块中包含网关限流的规则和

    2024年01月24日
    浏览(26)
  • SpringCloud Alibaba Sentinel整合GateWay

    在微服务系统中,网关提供了微服务系统的统一入口,所以我们在做限流的时候,肯定是要在网关层面做一个流量的控制,Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 网关: Sentinel 1.6.0 引入了 Sentinel API Gateway Adapter Common 模块,此模块中包含网关限流的

    2024年02月16日
    浏览(31)
  • SpringCloud之Gateway整合Sentinel服务降级和限流

    1.下载Sentinel.jar可以图形界面配置限流和降级规则 地址:可能需要翻墙 下载jar文件 2.引入maven依赖 3.写个自动注入Resource的过滤器类(可以不写注解直接使用) 4.写配置文件 application.properties 5.cmd命令行启动jar文件访问localhost:18080页面,自己设置QPS java -jar -server.port=18080 sentinel-dash

    2024年02月07日
    浏览(32)
  • spring cloud sentinel

      初始时 并不能将sentinel实例显示出来的 需要修改加配置clent-ip  

    2024年02月15日
    浏览(48)
  • SpringCloudAlibaba Gateway(三)-整合Sentinel功能路由维度、API维度进行流控

    ​ 前面使用过Sentinel组件对服务提供者、服务消费者进行流控、限流等操作。除此之外,Sentinel还支持对Gateway、Zuul等主流网关进行限流。 ​ 自sentinel1.6.0版开始,Sentinel提供了Gateway的适配模块,能针对路由(route)和自定义API分组两个维度进行限流。 路由维度是指配置文件中的

    2024年02月10日
    浏览(28)
  • spring cloud之集成sentinel

    源码 。 本文一起看下spring cloud的sentinel组件的使用。 对于一个系统来说,最重要的就是 高可用 ,那么如何实现高可用呢?你可能会说,集群部署不就可以了,但事实并非这么简单,假定一个不那么靠谱的开发,写了一个不那么靠谱的sql语句,上线之后,DB资源很快耗尽,那

    2024年02月02日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包