(Java企业 / 公司项目)微服务Sentinel限流如何使用?

1. Sentinel限流降级: 一个接口一个方法流量大限制流量,有些接口流量通过了有的没有通过所以就出现了降级操作

2. Sentinel熔断降级:A调用B B自身原因响应不稳定等,A觉得不稳定所以就断开就像保险丝一样

3. Sentinel+ nacos组合:不能持久化配置限流规则和熔断规则

一. 常见的限流算法

1. 静态窗口限流

2. 动态窗口限流:

例如:当前是第2.5秒,静态统计第2秒到现在的请求数,动态:统计第1.5秒到现在的请求数

3. 漏桶限流

4. 令牌桶限流

5.令牌大闸

二. Sentinel官网地址

官网地址: introduction | Sentinel (sentinelguard.io)

下载地址我已经打包了: Sentinel-1.8.6资源-CSDN文库

三. Sentinel 介绍

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

 四. Sentinel 使用

导入依赖

        <!-- 限流熔断 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

接下来看官方文档,首先你需要定义资源

 启动类添加以下方法,定义资源注意这个规则的资源名要与这上面的注解的名字需要一样才能匹配到是哪个方法定义了资源。,启动类的main方法之后调用资源的方法initFlowRules()

    private static void initFlowRules(){
        // 创建一个FlowRule对象的列表。
        List<FlowRule> rules = new ArrayList<>();
        // 创建一个新的FlowRule对象。
        FlowRule rule = new FlowRule();
        // 设置这个规则的资源名。
        rule.setResource("doConfirm");
        // 设置这个规则的grade为QPS。
        rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
        // 设置这个规则的限制QPS为20。
        rule.setCount(1);
        // 将这个规则添加到列表中。
        rules.add(rule);
        // 将这些规则加载到FlowRuleManager中。
        FlowRuleManager.loadRules(rules);
    }

@SentinelResource(value = "doConfirm") 在指定方法上面加上这个注解

 就是被限流之后就调用下面的方法

启动项目打印日志log输出,已定义限流规则

 开始压测上一节讲的jmeter

有些接口可以访问到数据有些请求访问不到被拦截到外面出现异常问题, 解决这个问题也很简单

 在配置异常信息配置对应的信息就好了

 某个接口对数据库的操作更多就可以使用Sentinel

五. Sentinel 控制台

Sentinel-1.8.6资源-CSDN文库已经打包了可以直接下载就可以使用

 java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

访问8080端口这个可以改,启动界面在下面账号密码都是sentinel

 这样可以看到限流监控平台

 在模块的配置文件中配置以下

# sentinel???https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
spring.cloud.sentinel.transport.port=8719
spring.cloud.sentinel.transport.dashboard=localhost:8080
spring.cloud.sentinel.web-context-unify=false

将business模块中有流量就会显示控制台

配置限流规则 

 这样就不用写代码来指定规则,控台不保存规则一旦应用重启之前设置的规则就全没了,存在应用内存里面,针对接口来定义限流规则

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Cloud Alibaba Sentinel是一个基于Java的开源框架,提供了熔断、降级、限流、系统负载保护等功能,可以帮助开发者实现微服务架构中的高可用性和稳定性。下面是一个使用Spring Cloud Alibaba Sentinel实现熔断与限流项目介绍。 1. 创建Spring Boot项目 首先,需要创建一个Spring Boot项目,并添加Spring Cloud Alibaba Sentinel的依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.2.3.RELEASE</version> </dependency> ``` 2. 配置Sentinel Dashboard Sentinel Dashboard是Sentinel的可视化管理平台,可以通过它来查看应用程序的运行状况、配置规则等。需要在项目中添加Sentinel Dashboard的依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel-datasource-nacos</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-dashboard</artifactId> <version>2.1.1.RELEASE</version> </dependency> ``` 同时,在application.properties文件中添加以下配置: ```properties # Sentinel Dashboard配置 spring.cloud.sentinel.transport.dashboard=localhost:8080 # Nacos配置 spring.cloud.nacos.discovery.server-addr=localhost:8848 spring.cloud.nacos.discovery.namespace= spring.cloud.nacos.discovery.username= spring.cloud.nacos.discovery.password= ``` 启动项目后,访问http://localhost:8080即可进入Sentinel Dashboard界面。 3. 实现熔断与限流项目中可以通过注解方式实现熔断与限流功能。例如,在Controller类中添加以下代码: ```java @RestController public class HelloController { @GetMapping("/hello") @SentinelResource(value = "hello", fallback = "fallback") public String hello(@RequestParam(required = false) String name) { if(StringUtils.isEmpty(name)) { throw new IllegalArgumentException("name is empty"); } return "Hello, " + name; } public String fallback(String name) { return "fallback " + name; } } ``` @SentinelResource注解指定了资源名称为hello,同时指定了fallback方法用于处理熔断降级。可以通过Sentinel Dashboard配置熔断规则和流量控制规则。 以上就是使用Spring Cloud Alibaba Sentinel实现熔断与限流项目介绍。使用Sentinel可以帮助我们更好地保障应用程序的稳定性和可用性,避免因为异常情况导致系统崩溃。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全能技术师

相关资源在博客首页资源下获取

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值