当前位置: 首页 > news >正文

Sentinel入门与进阶:微服务流量控制的最佳实践 ( 三 )

5.配置持久化

目前的sentinel,无法满足我们生产环境的需求,因为一旦sentinel-dashboard发生重启,限流规则也会随之丢失。

sentinel规则的持久化: Sentinel自身就支持了多种不同的数据源来持久化规则配置,比如文件配置,Nacos配置,Zookeeper配置等。

接下来我们讨论一下,如何使用Nacos来实现规则的持久化配置。

5.1.在 pom.xml 中加入依赖

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>       <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency>

nacos 2.3.2 与 sentinel 1.8.8 版本

5.2.在nacos的配置中心加入配置

注意类型为 JSON

在这里插入图片描述

public 命名空间下加入

sca-sentinel-dashboard-sentinel-flow

[{"resource": "/sentinelTest/sayHello","limitApp": "default","grade": 1,"count": 3}
]

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

5.3.修改项目配置

在 application.properties 中加入

ds-flow 可以自己定义

spring.cloud.sentinel.datasource.ds-flow.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds-flow.nacos.data-id=${spring.application.name}-sentinel-flow
spring.cloud.sentinel.datasource.ds-flow.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds-flow.nacos.rule-type=flow
spring.cloud.sentinel.datasource.ds-flow.nacos.data-type=json
spring.cloud.sentinel.datasource.ds-flow.nacos.username=nacos
spring.cloud.sentinel.datasource.ds-flow.nacos.password=nacos
spring.cloud.sentinel.datasource.ds-flow.nacos.namespace=DEFAULT_GROUP

5.4.查看Sentinel 流控规则

在这里插入图片描述

http://www.lryc.cn/news/426148.html

相关文章:

  • 2021年上半年网络工程师考试上午真题
  • SQL触发器的级联魔力:数据完整性的守护者
  • ARCGIS PRO 要素标注背景色透明度的设置
  • 探讨MySQL中 “约束“ 下的查询
  • Nuxt3【布局】layouts 详解
  • 获取数据源(多种方式爬虫介绍)
  • Linux下FTP服务器搭建配置:vsftpd的安装与配置实验
  • 使用Java调用Apache commons-text求解字符串相似性实战
  • http request-01-XMLHttpRequest XHR 简单介绍
  • 关于tresos Studio(EB)的MCAL配置之DIO
  • 【漫谈C语言和嵌入式003】1394总线
  • python爬虫爬取某图书网页实例
  • Linux 用户管理的基本概念、常用工具及操作流程
  • 手撕C++入门基础
  • NPM版本控制策略:实现版本候选行为的指南
  • 问题集锦6
  • 【研发日记】嵌入式处理器技能解锁(四)——TI C2000 DSP的Memory
  • Ubuntu离线安装docker
  • 【抓耳挠腮,还是升职加薪,一起来画架构图!】
  • 算法的学习笔记—合并两个排序的链表(牛客JZ25)
  • 《虚拟之旅:开启无限可能的机器世界》简介:
  • centos7 服务器搭建
  • 【Godot4自学手册】第四十五节用着色器(shader)制作水中效果
  • VMware Workstation Pro 安装 Ubuntu Server
  • 智能化包括自动化与非自动化
  • 微前端架构的容器化部署:策略、实践与优势
  • 面试题(网络、js、框架)
  • C语言典型例题40
  • 【大模型部署及其应用 】使用 Ollama 和 Ollama WebUI 在本地运行 Llama 3
  • uniapp-部分文件中文乱码