Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Sentinel集成Nacos实现动态流控规则

Sentinel集成Nacos实现动态流控规则

作者头像
背雷管的小青年
发布于 2020-06-16 07:55:09
发布于 2020-06-16 07:55:09
2.3K00
代码可运行
举报
运行总次数:0
代码可运行

目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Nacos 学习目标:学习Sentinel集成Nacos实现动态流控规则 本次学习的工程下载链接放到文本最后面

前面我们实现了两种对定义的资源设置流控规则

1.通过FlowRuleManage.loadRules(List rules)手动加载流控规则 2.在Sentinel Dashboard上正对资源动态创建流控规则

对于第一种设置方式,我们如果介入Sentinel Dashboard,那么同样支持动态修改流控规则,但是,会存在一个问题,基于Sentinel Dashboard 所配置的流控规则只会保存在内存当中,一旦项目重启,这些规则都会被清除,为了解决这个问题,Sentinel提供了动态数据源来支持。

Sentinel集成Nacos实现动态流控规则,配置步骤如下:

1.添加Nacos数据源的依赖包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <!--添加nacos数据源的依赖-->
    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-datasource-nacos</artifactId>
        <version>1.7.2</version>
    </dependency>

2.创建一个REST接口,用户测试。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
public class DynamicController {
    
    @GetMapping("/dynamic")
    public String dynamic(){
        return "Hello Dynamic Rule";
    }
    
}

3.在application.yml中添加数据源配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  application:
    name: springcloud-sentinel-dynamic
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:7777
      datasource:
        - nacos:
            server-addr: 127.0.0.1:8848
            data-id: ${spring.application.name}-sentinel-flow
            group-id: DEFAULT_GROUP
            data-type: json
            rule-type: flow
server:
  port: 8888

配置说明: 1.datasource:目前支持redis、apollo、zk、file、nacos,选择什么类型的数据源就配置相对应的key即可。 2.data-id:可以设置为${spring.application.name},方便区分不同应用的配置 3.rule-type:表示数据源中规则属于那种类型,如flow、degrade、param-flow、gw-flow等 4.data-type:指配置项的内容格式,SpringCloud Alibaba Sentinel提供了JSONXML两种格式,如果需要自定义只需要将值配置为custom,并配置converter-class指向converter类

4.登陆控制台,创建流控配置规则,配置信息如下

记住nacos中的data-id和你应用中的application.yml中的保持一致

5.最后登陆Sentinel Dashboard ,找到只想项目名称菜单下的"流控规则",就可以看到在Nacos上所配置的流控规则已经被加载了,如下图所示

最后访问http://localhost:8888/dynamic 刷新观察效果


下载链接:springcloud-sentinel-dynamic-rule.zip

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
23.Sentinel 实现从Nacos获取流控规则
从nacos dataId=sentinel_provider_flow_rule 和group-id: SENTINEL_PROVIDER_GROUP 中获取流控规则。
AI码师
2023/11/07
3610
23.Sentinel 实现从Nacos获取流控规则
SpringBoot 2.0 + Nacos + Sentinel 流控规则集中存储
Sentinel 原生版本的规则管理通过API 将规则推送至客户端并直接更新到内存中,并不能直接用于生产环境。不过官方也提供了一种 Push模式,扩展读数据源ReadableDataSource,规则中心统一推送,客户端通过注册监听器的方式时刻监听变化,比如使用 Nacos、Zookeeper 等配置中心。这种方式有更好的实时性和一致性保证。这里我们通过配置 Nacos 来实现流控规则的统一存储配置。
小柒2012
2019/12/05
1.2K0
24.Sentinel 同步流控规则到nacos
想将修改后的流控规则同步到nacos,需要修改sentinel源码,所以大家需要提前讲sentinel源码下载下来:
AI码师
2023/12/11
2380
24.Sentinel 同步流控规则到nacos
Sentinel规则持久化进Nacos
  一旦我们重启应用,sentinel规则将消失,生产环境需要将配置规则进行持久化
别团等shy哥发育
2023/02/25
3630
Sentinel规则持久化进Nacos
Sentinel Dashboard 中修改规则同步到 Nacos
上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo。下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashboard中修改规则同步到Nacos。关于下面改造的原理和分析可以见上一篇《Sentinel Dashboard中修改规则同步到Apollo》的头两节内容,本篇就不重复介绍了。
程序猿DD
2019/05/24
1.4K0
Sentinel规则持久化(7)
将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台 的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效
一个风轻云淡
2022/11/13
2310
Sentinel规则持久化(7)
​使用 Nacos 存储 Sentinel 规则信息
Sentinel 规则配置,一旦我们重启服务过后,所有的规则都会消失。我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。
没有故事的陈师傅
2021/06/24
7530
​使用 Nacos 存储 Sentinel 规则信息
使用Nacos存储Sentinel的限流规则
要通过 Sentinel 控制台配置集群流控规则,需要对控制台进行改造。主要改造规则可以参考:
BUG弄潮儿
2020/07/21
3.5K0
用Nacos存储Sentinel的限流规则
添加Sentinel的控制地址、Nacos的地址,并自定义Nacos中的dataId和groupId
星哥玩云
2022/09/15
6950
用Nacos存储Sentinel的限流规则
Sentinel Gateway Nacos 网关限流三剑客
顾名思义,网关限流是通过网关层对我们的服务进行限流,达到保护后端服务的作用。在微服务架构的系统中,网关层可以屏蔽外部的请求直接对服务进行调用,网关层可以对内部服务进行隔离,保护的作用。
程序猿小亮
2021/04/01
8.6K0
Sentinel Gateway Nacos 网关限流三剑客
使用 Spring Cloud Alibaba Sentinel 的熔断降级保护微服务应用
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
张云飞Vir
2021/12/06
5660
使用 Spring Cloud Alibaba Sentinel 的熔断降级保护微服务应用
SCA Sentinel 分布式系统的流量防卫兵
Spring Cloud 是一站式微服务解决方案。很多公司都在使用 Spring Cloud 组件。我们想要学习 Spring Cloud 微服务架构,就需要学习他们的组件。包含:注册中心、负载均衡、熔断处理、过程调用、网关服务、配置中心、消息总线、调用链路、数据监控等等。
程序员爱酸奶
2023/11/16
2200
SCA Sentinel 分布式系统的流量防卫兵
Sentinel + Gateway 在网关统一流控
很久之前,姜同学写过一篇使用Hystrix对微服务进行保护,里面介绍了一些Hystrix是怎么对服务器的资源进行限流的,但是令人遗憾的是,Hystrix在github上的仓库已经停止维护了,但不可否认的是Hystrix就算是在今天依旧强大,它依然是微服务弹性架构的保障。强大归强大,一些不好用的缺点姜同学还是得拿出来说说。
姜同学
2022/12/08
1.4K0
Sentinel + Gateway 在网关统一流控
网关/Sentinel/nacos配置中心接入(9)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】
第三十六章 1024电商平台-Gateway网关引入和功能测试 第1集 1024电商平台网关Gateway项目开发和配置 简介:网关Gateway项目开发和配置 依赖添加 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
高大北
2022/09/21
5790
网关/Sentinel/nacos配置中心接入(9)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】
Spring Cloud Alibaba之服务容错组件 - Sentinel存储规则(十八)
通过之前的介绍,大家对Sentinel已经有了初步认识。在Spring Cloud Alibaba的整合封装下,接口限流这件事非常轻易的应用到我们的Spring Cloud应用中。但是这依然不能完美满足我们的日常生产需求。其中,非常重要的一点就是限流规则持久化的问题。默认情况下Dashboard中设置的限流规则在应用重启之后就会丢失。那么,接下来我们就Sentinel的规则持久化问题加以实现。
用户1212940
2022/04/13
3330
Spring Cloud Alibaba之服务容错组件 - Sentinel存储规则(十八)
Sentinel-Dashboard持久化生产环境解决方案
Sentinel作为目前市面上常用的限流/降级/熔断平台,已经在诸多高并发项目上进行应用。通常来说一个微服务架构下的项目,流量控制、熔断降级等系统保护功能是必备的。由于现在公司都流行采用开源和商业化双线进行,Sentinel-DashBoard开源版本并不是一个生产环境拿来就能用的产品。
benym
2023/10/18
1.3K0
Sentinel-Dashboard持久化生产环境解决方案
SpringCloud Alibaba 实战教程6-sentinel限流持久化配置nacos
resource:资源名称 limitApp:来源应用 grade:阀值类型,0-线程数,1-qps count:单机阀值 strategy:流控模式,0-直接,1-关联,2-链路 controlBehavior:流控效果,0-快速失败,1-warm up,2-排队等待 clusterMode:是否集群
gang_luo
2020/12/22
5280
SpringCloud Alibaba 实战教程6-sentinel限流持久化配置nacos
Sentinel使用Nacos存储规则
准备服务启动 Nacos:http://10.17.12.160:8848 Sentinel Dashboard:http://10.17.12.158:8084
程裕强
2019/07/11
9740
Sentinel使用Nacos存储规则
lagou 爪哇 3-5 spring cloud (下) 笔记
为了⽀撑⽇益增⻓的庞⼤业务量,我们会使⽤微服务架构设计我们的系统,使得 我们的系统不仅能够通过集群部署抵挡流量的冲击,⼜能根据业务进⾏灵活的扩展。那么,在微服务架构下,⼀次请求少则经过三四次服务调⽤完成,多则跨越⼏⼗ 个甚⾄是上百个服务节点。那么问题接踵⽽来:
acc8226
2022/05/17
6330
lagou 爪哇 3-5 spring cloud (下) 笔记
Sentinel 授权规则&&规则持久化
授权规则是对请求者的身份做一个判断。你有没有权限来访问我?那就有人可能会说这个功能,好像以前我们在学习微服务的时候讲过网关他不就是把门的吗?
叫我阿杰好了
2023/10/17
4680
Sentinel 授权规则&&规则持久化
推荐阅读
相关推荐
23.Sentinel 实现从Nacos获取流控规则
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文