sentienl

整合springboot

Spring Cloud Alibaba Sentinel

下载

导入依赖

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

配置受保护资源(自动)

下载jar包并且运行(指定端口号)

java -jar sentinel-xxxx --server.port=8333

 

每个用到sentinel 的微服务配置通信端口

spring:
  cloud:
    sentinel:
      transport:
        port: 8719
        dashboard: localhost:8333

启动项目测试一下

默认账号密码:sentinel 

懒加载,经过请求后就可以添加流控信息

 

 

 QPS 每秒访问量, 控制后方法都不会被调用

实时监控

导入依赖

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

配置:

management.endpoints.web.exposure.exclude=*

测试: 访问后等待几秒会刷新界面

 

 

 流控

自定义流控响应

自定义类R返回 R.异常信息和R.异常码

 

链路和关联

链路: 指定入口到这个资源的才会限流, 其他的情况下不限流

关联: B流量大就限制A (读写)

 

预热时长 : 几秒内慢慢达到峰值

排队等待: 限流外的排队慢慢处理  

 

降级和熔断

 

远程服务崩溃就降级

引入openfeign依赖 然后添加配置

  • feign.sentinel.enabled=true

编写代码 测试

配置降级策略

 

 

 平均响应时间(ms), 异常比例, 异常数  ,窗口时间(在多少秒内不会再调用)

调用方不去调用资源[熔断]

被调用方去服务开启但是不服务,返回的是[]降级]数据

意思是调用方和被调用方都可以做降级,被调用方做降级就相当于是全局性的(虽然在运行,但返回的是降级数据[无效的])

 

自定义保护资源

1.通过try -catch

2.支持通过 @SentinelResource 注解定义资源并配置 blockHandler 和 fallback 函数来进行限流之后的处理

 

网关流控

导入依赖

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

添加配置

启动测试

 

 网关限流, 可以通过细化,限制固定请求头的  或者IP的等等

 

 

sleuth+zipkin服务链路追踪

 

posted @   磕伴  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示