Sentinel如何保证规则的持久化? | 带你读《Spring Cloud Alibaba(2019)》之十四

简介: 默认的情况下Sentinel的规则是存放在内存中,如果Sentinel客户端重启后,Sentinel数据规则可能会丢失。那么如何解决就成为重点,本节来介绍一下。
+关注继续查看

上一篇:什么是SpringCloud Sentinel? | 带你读《Spring Cloud Alibaba(2019)》之十三
下一篇:SpringCloud网关如何实现限流? | 带你读《Spring Cloud Alibaba(2019)》之十五

本文来自于《精通Spring Cloud Alibaba》课程的整理,讲师为余胜军,点击查看视频内容
本文系志愿者整理,供配合学习中心课程使用,不做商业用途。

Sentinel如何保证规则的持久化

默认的情况下Sentinel的规则是存放在内存中,如果Sentinel客户端重启后,Sentinel数据规则可能会丢失。
解决方案:
Sentinel持久化机制支持四种持久化的机制。

  1. 本地文件
  2. 携程阿波罗
  3. Nacos
  4. Zookeeper

image.png
image.png

1、订单服务项目启动的时候读取nacos配置规则到内存中
2、Sentinel控制台读取订单服务展示流控规则信息

基于Nacos持久化我们的数据规则

Nacos平台中创建我们的流控规则

meitemayikt-order-sentinel

image.png

[
    {
        "resource": "/ getOrderSentinel",
        "limitApp": "default",
        "grade": 1,
        "count": 5,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]

resource:资源名,即限流规则的作用对象
limitApp:流控针对的调用来源,若为 default 则不区分调用来源
grade:限流阈值类型(QPS 或并发线程数);0代表根据并发数量来限流,1代表根据QPS来进行流量控制
count:限流阈值
strategy:调用关系限流策略
controlBehavior:流量控制效果(直接拒绝、Warm Up、匀速排队)
clusterMode:是否为集群模式

@SentinelResource(value = "getOrderSentinel", blockHandler = "getOrderQpsException")
@RequestMapping("/getOrderSentinel")
public String getOrderSentinel() {
    return "getOrderSentinel";
}

SpringBoot客户端整合

引入依赖:

<!--sentinel 整合nacos -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
    <version>1.5.2</version>
</dependency>

相关配置:

sentinel:
  transport:
    dashboard: 127.0.0.1:8718
  eager: true
  datasource:
    ds:
      nacos:
        ### nacos连接地址
        server-addr: localhost:8848
        ## nacos连接的分组
        group-id: DEFAULT_GROUP
        ###路由存储规则
        rule-type: flow
        ### 读取配置文件的 data-id
        data-id: meitemayikt-order-sentinel
        ###  读取培训文件类型为json
        data-type: json
相关文章
|
23天前
|
Kubernetes Java 微服务
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
40 0
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
|
2月前
|
Dubbo Java 应用服务中间件
深入了解Spring Cloud Alibaba Dubbo
在现代分布式系统开发中,构建高性能、可伸缩性和弹性的微服务架构变得越来越重要。Spring Cloud Alibaba Dubbo(简称Dubbo)是一个开源的分布式服务框架,可以帮助开发者构建强大的微服务架构,具备负载均衡、服务治理、远程调用等强大功能。本文将深入介绍Spring Cloud Alibaba Dubbo,帮助你理解它的核心概念、工作原理以及如何在你的项目中使用它。
|
3月前
|
Java Nacos Sentinel
Spring Cloud Alibaba学习指南
由于在2018年Netflix公司宣布对其核心组件Hystrix、Ribbon、zuul、Eureka等进入维护状态,也就是Spring Cloud Netflix系列。由此Spring Cloud Alibaba就诞生了,值得注意的是Spring Cloud Alibaba完全兼容了Spring Cloud Netflix中的Ribbon、Feign、Eureka等组件,所以基于Spring Cloud Netflix的项目可以无缝迁移到Spring Cloud Alibaba。
308 0
|
3月前
|
SQL 消息中间件 Oracle
|
3月前
|
负载均衡 Java Spring
业界良心啊!第五次更新的Spring Cloud Alibaba升级太多内容
Spring Cloud Alibaba经历的这几年,每次的更新都会掀起更大的水花,就在近日进行了第五次的重大更新,除了修改、升级了一些内容之外,还有增加了很多细节的内容。在质上可以说是有了一个很大的飞跃!
|
4月前
|
存储 消息中间件 安全
浅谈 Spring Cloud Alibaba
Spring Cloud Alibaba是微服务开发的种解决方案。它包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
172 0
|
4月前
|
SQL 开发框架 安全
Spring Boot 如何保证接口安全?有哪些常用的接口安全技术?
Spring Boot 如何保证接口安全?有哪些常用的接口安全技术?
89 0
|
4月前
|
存储 负载均衡 算法
Spring Cloud Alibaba题目
五道关于Spring Cloud Alibaba的题目,希望能帮助初学者。
100 0
|
5月前
|
Java Maven Spring
Spring Cloud Alibaba 项目搭建
Spring Cloud Alibaba 项目搭建
386 0
|
5月前
|
Java Spring
spring如何保证事件顺序发送
spring如何保证事件顺序发送
热门文章
最新文章
推荐文章
更多