springcloud-alibaba (03)sentinel实现规则持久化-流控规则为例

news2024/10/6 14:26:32

Sentinel和Nacos的整合可以实现规则动态配置,即在Nacos中修改规则后,Sentinel能够实时地读取并应用新的规则。而规则持久化则是指将规则保存在Nacos中,以避免意外故障或重启时规则被丢失。

实现规则持久化,可以按照以下步骤进行操作(流控规则为例):

  1. 📥 导入依赖
<!-- sentinel数据源持久化进nacos -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
  1. bootstrap.yml🧰 配置文件
spring:
  application:
    name: user-server
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.157.129:8848
      config:
        server-addr: 192.168.157.129:8848
        file-extension: yaml
    sentinel:
      transport:
        dashboard: 192.168.157.129:8081
        port: 8791
      web-context-unify: false
      datasource:
        # 自定义命名
        flow-rule:
          # 支持多种持久化数据源:file、nacos、zk、apollo、redis、consul
          nacos:
            # nacos服务地址
            server-addr: 192.168.157.129:8848
            # 命名空间,根据环境配置
#            namespace: public
            # 这里我做了一下细分,不同规则设置不同groupId
            group-id: USER_SENTINEL_FLOW_GROUP
            # 仅支持JSON和XML类型
            data-id: ${spring.application.name}
            # 规则类型:flow、degrade、param-flow、system、authority
            rule-type: flow
            data-type: json
  1. 🛡️ 编写接口
@GetMapping("/get001")
@SentinelResource(value = "/resource/user/get001")
public Integer get001(@RequestParam("i") Integer i){
    return 111;
}
  1. 在Nacos中创建一个配置文件,用于保存Sentinel规则

📝 创建配置文件

Data ID和Group需要对应

在这里插入图片描述

流控规则持久化配置参数:

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

流控规则持久化配置参数说明:
🔧 配置规则

  • resource : 资源名称(@SentinelResource(value = "/resource/user/get001")
  • limitApp : 来源应用
  • grade : 0表示线程数,1表示QPS
  • count : 单机阈值
  • strategy : 流控模式,0直接,1关联,2链路
  • controllerBehavior : 流控效果,0快速失败,1Warm Up,2排队等待
  • clusterMode : 是否集群

在这里插入图片描述

  1. 重新启动服务,然后访问/resource/user/get001资源,刷新一下Sentinel控制台就可以看到我们在Nacos里配置的流控规则了
    🚀 重启服务
    在这里插入图片描述

👀 更新规则

如果在Nacos中更新了规则,Sentinel会自动读取并应用新的规则。同时,也可以从Sentinel Dashboard中查看规则信息。

请注意,Sentinel Nacos适配器要求Nacos版本为1.1.4及以上。在使用之前,请确保您安装的Nacos版本满足要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

龙蜥白皮书精选:利用 io_uring 提升数据库系统性能

文/高性能存储 SIG 01 背景介绍 传统的 IO 软件栈已经无法完全释放出高性能存储设备的性能&#xff0c;高性能 IO 栈是当前存储领域重点研究的课题之一&#xff0c;代表性的如用户态方案 SPDK&#xff0c;以及标准的内核态方案 io_uring。 02 关键技术 Linux 社区从零开始设…

Raft算法

这是一种选举算法&#xff0c;用来确认分布式架构下主节点(领导者)是哪一个结点 只有成为了主节点才能向其他结点进行指令的下达来进行数据的同步 三种角色&#xff1a;追随者Follower&#xff0c;候选人Candidate&#xff0c;领导者leader (1)追随者Follower&#xff1a;接收…

电脑版pdf阅读器有哪些?编辑途径分析

PDF 阅读器电脑版是一种十分流行的电子文档阅读工具&#xff0c;它可以让用户在电脑上轻松地阅读各种文档&#xff0c;包括 PDF 文件。在数字化信息时代&#xff0c;PDF 阅读器电脑版已经成为了许多人电脑上必备的工具之一。本文将探讨 PDF 阅读器电脑版的优缺点&#xff0c;以…

【面试题】面试官:谈谈你知道的DOM常见的操作

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 面试官&#xff1a;“谈谈你知道的DOM常见的操作” 紧张的萌新&#xff1a;“可以获…

达梦数据库索引的建立使用

达梦数据库支持聚集索引&#xff0c;复合索引&#xff0c;函数索引&#xff0c;唯一索引&#xff0c;位图索引等等。 一.建立索引的准则 1.1在表中插入数据后创建索引 一般情况下&#xff0c;在插入或装载了数据后&#xff0c;为表创建索引会更加有效率。如果在装载数据之前…

基于最新SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

目录 第一章 理论基础与研究热点 第二章 SolVES 4.0 模型运行环境配置 第三章 SolVES 4.0 模型运行 第四章 数据获取与入库 第五章 环境变量与社会价值的相关分析 第六章 拓展案例分析 SolVES模型&#xff08;Social Values for Ecosystem Services&#xff09;全称为生态…

功能开发如何实现多终端设备上的体验统一?

多端能力服务统一&#xff08;Multi-Experience Service Orchestration&#xff0c;MESO&#xff09;是一种技术和服务架构的概念&#xff0c;旨在为多种终端设备提供统一的用户体验和功能。它解决了在不同终端设备上使用不同应用程序和服务时出现的问题&#xff0c;使得用户可…

【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

文章目录 系列文章目录&#x1f479; 关于作者一、回顾二、容器进程的文件系统是什么样子的&#xff1f;rootfs一致性解决应用依赖关系解决复用性 三、OverlayFS 联合文件系统先决条件overlay2 驱动程序如何工作结构图探索含义-磁盘上的镜像层和容器层镜像层容器层 四、overlay…

Lua学习笔记:浅谈对闭包的认识

前言 本篇在讲什么 我们从几个方面简单认识和理解lua的闭包 本篇适合什么 适合初学Lua的小白 本篇需要什么 对Lua语法有简单认知 依赖Lua5.1的环境 依赖Sublime Text3编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全…

docker 安装常用软件

安装docker 下载docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun修改镜像仓库 vim /etc/docker/daemon.json{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"] }查看docker …

Adapt Learning使用教程(Adapt Framework/Adapt Authoring)(一)

因为这是一个外国的技术&#xff0c;在国内又很小众&#xff0c;再加上公司业务需要用到这个东西所以就来总结一下。刚接到任务的时候也是稀里糊涂的&#xff0c;官网全是英文&#xff0c;国内也搜不到教程&#xff0c;让使用这个变得难上加难&#xff0c;没有其他教程参考我只…

InetAddress类

1. 简介 java.net.InetAddress类是Java对Ip地址的高层表示。大多数其他网络都要用到这个类&#xff0c;包括Socket、ServerSocket、URL、DatagramSocket、DatagramPacket等。一般来讲&#xff0c;它包括一个主机名和一个IP地址。它提供了获取和操作 IP 地址的方法&#xff0c;…

OceanBase 4.1解读:我们支持MySQL 8.0哪些新增功能特性?

本文主要介绍 OceanBase 在 4.1 版本发布之际&#xff0c;对 MySQL 8.0 新增功能特性的支持情况。文章作者刘彬&#xff0c;OceanBase高级技术专家。曾参与 OceanBase RS、存储模块研发&#xff0c;目前是 SQL 执行组负责人。 MySQL 在业内是最受欢迎的关系数据库之一&#xff…

UOS下使用HHDESK文本对比功能

UOS系统从开发至今&#xff0c;虽然进展很大&#xff0c;但受限于一些因素&#xff0c;所支持的功能和软件&#xff0c;目前仍不多。 HHDESK便是其中佼佼者之一。 此篇介绍的便是HHDESK的一项便捷功能——文本对比。这个功能针对办公人员所开发&#xff0c;使得原本复杂的UOS…

SpringCloud-Gateway的详细讲解以及完整的示意图和代码演示

目录 SpringCloud Gateway 看一个需求&#xff0c;引出网关服务 Gateway 网络拓扑图-背下来 Gateway 是什么 Gateway 核心功能 Gateway VS Zuul Gateway 和Zuul 区别 Gateway 基本原理​编辑 解读: Route(路由) Predicate(断言) Filter(过滤) How It Works 工作机制…

Linux网络——shell编程之firewalld防火墙

Linux网络——shell编程之firewalld防火墙 一、firewalld概述二、iptables与firewalld的联系与区别1.iptables与firewalld的区别2.iptables与firewalld的联系 三、firewalld区域1.firewalld的九个区域2.firewalld区域介绍3.firewalld数据处理流程4.firewalld检查数据包源地址的…

【shell编程学习】反弹shell

反弹实验 机器IPwin10虚拟机192.168.242.129攻击机centos 虚拟机192.168.242.131靶机 1&#xff0c;win10机器安装Ncat 来监听端口 简单来说&#xff0c;就是下载netcat 安装包&#xff0c;解压&#xff0c;将nc.exe 复制到C:\Windows\System32的文件夹下。即可使用nc命令来…

悦亮少儿眼科樊广祥:远视储备是妈妈都该知道的眼科知识!

近视的“低龄化”和“高度化”问题日益严重&#xff0c;如何预防近视或推迟近视发生&#xff0c;已成为大家都非常关注的话题。这其中&#xff0c;“远视储备”一词也为越来越多的人所知晓。 为了帮助大家更好的理解远视储备、从而帮助孩子预防近视&#xff0c;悦亮少儿眼科(宁…

Java 期末复习进阶版

(一) 方法重载 1.同一个类中多个方法具有相同的方法名,不同的______称为方法的重载.(参数列表) 2.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C). A)public getSort(float x) B)int getSort(int y) C)double getSort(int x,int y) D)vo…

Docker安装Yearning3.1.4/禅道18.4【亲测可用】

一、安装Yearning 1、建议先安装go 2、在mysql下新建yearning数据库&#xff1a; 进入mysql&#xff1a;docker exec -it 91ada9def680 /bin/bash 账号密码登录&#xff1a;mysql -uroot -p create database if not exists yearning default character set utf8mb4 collat…