微服务架构SpringCloud(2)

热点参数限流

注:热点参数限流默认是对Springmvc资源无效; 

隔离和降级

1.开启feign.sentinel.enable=true

2.FeignClient(fallbackFactory=) 

3.创建一个类并实现FallbackFactory接口

4.加入依赖

  <!--添加Sentienl依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

熔断降级

规则持久化

注:严重不建议用在生产 环境中,一旦微服务重启,之前配置的规则会全部丢失;

注:这种模式做不到实时更新,频繁的访问数据库的话,会影响Sentinel的性能;

注:企业常用的规则持久化;

默认Sentinel无法整合nacos---需要修改sentinel控制台的源码;

sentinel 的持久化,我们希望这样:

  • 可以在 sentinel 控制台中编辑 限流配置,并且同步到 nacos 做持久化

  • 在 nacos 中修改了限流配置,也可以同步到 sentinel 控制台

要实现上述第一个功能需要对 sentinel 控制台的源码有所了解,并加依改造。

但 GitHub 上已经有人改造好了,做了个加强版 控制台。

GitHub - CHENZHENNAME/sentinel-dashboard-nacos: sentinel 控制台持久化到nacos 完成了限流、降级、系统、授权、热点规则、网关。保留了原始模式直接推送到客户端的内存中sentinel 控制台持久化到nacos 完成了限流、降级、系统、授权、热点规则、网关。保留了原始模式直接推送到客户端的内存中 - CHENZHENNAME/sentinel-dashboard-nacosicon-default.png?t=N7T8https://github.com/CHENZHENNAME/sentinel-dashboard-nacos

 

持久到nacos;

微服务客户端接入sentinel控制面板;

1.在各个微服务中引入依赖;

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><version>1.8.1</version>
</dependency>

2.修改配置文件;

spring.cloud.sentinel.transport.dashboard=localhost:8090
spring.cloud.sentinel.datasource.ds1-flow.nacos.server-addr=localhost:8848
spring.cloud.sentinel.datasource.ds1-flow.nacos.data-id=${spring.application.name}-flow-rules
# 还可以是 degrade authority param-flow
spring.cloud.sentinel.datasource.ds1-flow.nacos.rule-type=flow
spring.cloud.sentinel.datasource.ds1-flow.nacos.data-type=json
spring.cloud.sentinel.datasource.ds1-flow.nacos.group-id=SENTINEL_GROUP

点击 簇点链路,新增 一个流控规则:

 注意,一定要点 带 2 的,只有带 2 的才能推送到 nacos,在 流控规则 选项中添加也不行,只能点击 蓝色方框 才能推送到 nacos;

添加成功后,nacos 中,你指定的命名空间下会自动生成 ${application-name}-flow-rules 格式的配置文件;

当你在 sentinel 控制台中,无论增加规则,还是修改规则,都会同步到 nacos;相反,修改 nacos 中 配置文件的限流规则,也会同步到 sentinel ;

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

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

相关文章

C语言如何正确使⽤循环嵌套?

一、问题 循环嵌套的应⽤⾮常⼴泛&#xff0c;如⽆限循环、查找循环、计数循环等&#xff0c;那么如何正确使⽤它呢&#xff1f; 二、解答 正确的循环嵌套模式是这样的&#xff1a;在⼀个循环结构当中包含另外⼀个循环结构&#xff0c;就像玩具套娃⼀样&#xff0c;⼀层套⼀层…

机器学习笔记 大语言模型是如何运作的?一、语料库和N-gram模型

一、语料库 语言模型、ChatGPT和人工智能似乎无处不在。了解大型语言模型(LLM)“背后”发生的事情将是驾驭数字世界的关键。 首先在提示中键入一个单词,然后点击提交。您可以尝试新的提示,并根据需要多次重新生成响应。 这个我们称之为“T&C”的语言模型是在一…

量子效应可以消灭熵

按照热寂论&#xff0c;宇宙最终达到热平衡&#xff0c;死气沉沉&#xff0c;此时熵最大。那么这一切就没有希望了吗&#xff1f; 我于是提出一个想法&#xff1a; 只要有量子效应&#xff0c;经过足够长时间&#xff08;期间无数次的变化&#xff09;&#xff0c;就会再次发…

店匠科技颁布 Shoplazza Awards:品牌出海迎历史性机遇,赋能品牌腾飞

在全球化的今天&#xff0c;中国品牌在全球市场的地位日益显著&#xff0c;品牌意识的提升推动了企业出海战略的全新转型。以全球电商市场发展为例&#xff0c;根据 ecommerceBD 数据&#xff0c;2023 年全球零售电子商务销售额预计 6.3 万亿美元&#xff0c;到 2026 年&#x…

Overload方法的重载

在一个类中&#xff0c;我们可以定义多个方法。但是有一系列方法&#xff0c;他们的功能相似&#xff0c;只是参数不同(参数的个数、顺序、类型不同)&#xff0c;那么在JavaOOP的语法中允许把这一系列方法定义为同名方法&#xff0c;这种方法名相同&#xff0c;但是参数不同的方…

Spring ControllerAdvice:全局异常处理与控制器增强

Spring ControllerAdvice&#xff1a;全局异常处理与控制器增强 在Spring框架中&#xff0c;ControllerAdvice是一个非常重要的注解&#xff0c;它提供了一种机制来全局地处理控制器层的异常&#xff0c;并且能够增强控制器的行为。通过使用ControllerAdvice&#xff0c;我们可…

我们距离AGI还有多远?

关于HBM那份纪要的其他反馈 上篇文章发了一篇HBM纪要小部分内容&#xff08;星球更新了另一部分&#xff09;&#xff0c;收到很多业内大佬们的反馈&#xff0c;包括颗粒计算、封装订单划分等等&#xff0c;以及是不是某通某电的一个专家。其中倒是出现一个非共识的说法&#…

【论文阅读】TensoRF: Tensorial Radiance Fields 张量辐射场

发表于ECCV2022. 论文地址&#xff1a;https://arxiv.org/abs/2203.09517 源码地址&#xff1a;https://github.com/apchenstu/TensoRF 项目地址&#xff1a;https://apchenstu.github.io/TensoRF/ 摘要 本文提出了TensoRF&#xff0c;一种建模和重建辐射场的新方法。不同于Ne…

Python字符串中%d,%.f的用法

在字符串中&#xff0c;我们经常需要改变其中的一些几个字符&#xff0c;比如 第一个d%就是epoch1&#xff0c;会随着epoch的变化而变化。同理&#xff0c;后面的也是。打印出的结果就是 其中&#xff0c;epoch迭代了3次&#xff0c;从0开始。会发现 d%&#xff0c;是整数&…

12-Java享元模式 ( Flyweight Pattern )

Java享元模式 摘要实现范例 享元模式&#xff08;Flyweight Pattern&#xff09;主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能 享元模式尝试重用现有的同类对象&#xff0c;如果未找到匹配的对象&#xff0c;则创建新对象 享元模式属于结构型模式&…

复现ConvE遇到问题:spodernet安装不上

问题&#xff1a; (py37) D:\Python\CodeHub\MTL\Siamese_MTL\ConvE>pip install -r requirements.txt Obtaining spodernet from gitgit://github.com/TimDettmers/spodernet.git#eggspodernet (from -r requirements.txt (line 2)) Cloning git://github.com/TimDettmers/…

开发一套小程序所需的费用取决于多个因素

随着移动互联网的发展&#xff0c;小程序已经成为许多企业和个人推广业务和服务的重要工具。 不过&#xff0c;对于很多想要开发小程序的人来说&#xff0c;最大的疑问就是开发一套小程序要花多少钱。 这个问题的答案并不是固定的&#xff0c;因为开发一个小程序的成本取决于几…

字符编码学习目录

字符 兆究竟在中文里表示百万还是万亿&#xff1f; 1分钟理解位、字节、字符之间的区别 1分钟搞清字符和字节的对应关系 1分钟理解什么是字符集 Unicode的表现形式? 什么是字符编码? encode decode作用&#xff0c;以及为什么会出现乱码呢&#xff1f;如何准确检查字符长度&…

一条SQL引起的系统不可用

一.前言 最近在运维系统&#xff0c;系统对客端突然报了403错误&#xff0c;从后台看发现了大量的慢SQL&#xff0c;导致查询超时&#xff0c;仔细分析我从来没见过那么厚颜无耻的SQL&#xff0c;一条SQL语句关联了一个大表&#xff08;6000数据&#xff09;查询了10次。我也很…

24计算机考研调剂 | 北京信息科技大学

北京信息科技大学接收调剂研究生 考研调剂招生信息 学校:北京信息科技大学 专业:工学->控制科学与工程->控制理论与控制工程 年级:2024 招生人数:- 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 各位同学&#xff0c;…

代码随想录算法训练营Day36 || leetCode 435. 无重叠区间 || 763.划分字母区间 || 56. 合并区间

435. 无重叠区间 和上一道气球题类似。只不过上一道题中两个区间左右边界相等可视为一个区间&#xff0c;这里不可以。 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < …

实现video视频缓存

方法一 要实现视频被播放过后本地有缓存&#xff0c;下次播放无需网络即可播放&#xff0c;你可以利用浏览器的本地存储功能&#xff08;如localStorage或IndexedDB&#xff09;来实现。 你可以在视频播放结束时&#xff0c;将视频的URL以及相关信息存储在本地存储中。然后&a…

利用Docker快速安装Jenkins

文章目录 1.在Docker中创建桥接网络2.在宿主机上创建文件夹3.实现在Jenkins Docker节点内执行Docker命令4.定制官方Jenkins Docker 镜像创建一个Dockerfile文件构建docker镜像 5.运行定制镜像6.浏览器访问Jenkins7.获取管理员密码8.配置插件镜像加速9.新建Jenkins任务流水线任务…

IM聊天交友APP源码IM带音视频Uniapp即时通讯安卓苹果APP修改二开

前端开发语言&#xff1a;VUE&#xff08; 安卓&#xff0c;IOS,WEB为一套前端代码&#xff09; 服务器端开发语言: PHPWebSocket 数据库&#xff1a;MySql mongodb 前端打包工具&#xff1a;Hbuilder 服务器搭建工具&#xff1a;宝塔 Xshell 短信接口&#xff1a; 支持…

【Django】聚合查询——连接和聚合

还是以下面的模型为例进行讨论&#xff0c;给出示例代码和示例结果 from django.db import modelsclass Author(models.Model):name models.CharField(max_length100)age models.IntegerField()class Publisher(models.Model):name models.CharField(max_length300)class B…