查询系统网站模板浙江做网站平台的科技公司

pingmian/2026/1/22 12:24:06/文章来源:
查询系统网站模板,浙江做网站平台的科技公司,怎么让百度蜘蛛围着网站爬取,购物网站模板免费SpringCloudAlibaba之Sentinel简单使用 文章目录 SpringCloudAlibaba之Sentinel简单使用sentinel入门资源定义SphU(抛出异常方式)SphO(布尔类型方式)SentinelResource(注解的方式定义)SentinelResource使用前置条件使用SentinelResource定义资源定义blockHandler和fallback方法…SpringCloudAlibaba之Sentinel简单使用 文章目录 SpringCloudAlibaba之Sentinel简单使用sentinel入门资源定义SphU(抛出异常方式)SphO(布尔类型方式)SentinelResource(注解的方式定义)SentinelResource使用前置条件使用SentinelResource定义资源定义blockHandler和fallback方法(方法名称和sentinelResoruce的参数名称需要一直并且方法必须是public修饰)SentinelResoruce参数释义完整的service代码(资源定义) 定义sentinel规则校验规则是否生效 使用sentinel三部曲 定义资源定义规则检验规则是否生效 sentinel入门 创建基础模块sentinel-boot-service 引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-core/artifactIdversion1.8.0/version /dependency创建主类 SpringBootApplication public class SentinelBootServiceApplication {public static void main(String[] args) {SpringApplication.run(SentinelBootServiceApplication.class,args);} }创建application.yml server:port: 8080 资源定义 定义sentinel资源sentinel中的资源可以是一段代码一个方法甚至是整个应用。sentinel可以保护整个应用 资源必须定义资源名称 创建service/SentinelTestService SphU(抛出异常方式) public String sphuTest(){// 1.5.0 版本开始可以直接利用 try-with-resources 特性try(Entry ignored SphU.entry(sphuTest)) {// 被保护的逻辑return hello world;} catch (BlockException ex) {// 处理被流控的逻辑return blocked;} }Sphu.entry(resourceName) 可以定义一段sentinel资源当访问超出sentinel定义的规则后Sphu.entry方法会抛出BlockException。 所以可以在try语句块中定义sentinel的资源也就是被保护的逻辑。在catch块中捕获BlockException用来对降级进行处理 SphO(布尔类型方式) public String sphoTest() {if(SphO.entry(sphoTest)){try {return hello world;} finally{SphO.exit();}}else{//被限流了,逻辑处理return 被限流了;} }SphO.entry(resourceName) 方法可以返回一个boolean值用于是否通过sentinel管控必须与SphO.exit()搭配使用 SentinelResource(注解的方式定义) SentinelResource使用前置条件 由于SentinelResource是通过aop方式进行管控所以需要引入aspectj模块 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-annotation-aspectj/artifactIdversion1.8.0/version /dependency将SentinelResourceAspect注入到Spring容器中 sentinel-boot-service 的config包下创建SentinelConfig Configuration public class SentinelConfig {//注入Beanpublic SentinelResourceAspect sentinelResourceAspect(){return new SentinelResourceAspect();} }使用SentinelResource定义资源 private static AtomicInteger atomicInteger new AtomicInteger(0);SentinelResource(value annotationTest,blockHandler blockHandler,fallback fallback)public String annotationTest(){int i atomicInteger.incrementAndGet();if(i % 2 0){return hello world;}else{throw new RuntimeException(something wrong);}}blockHandler和fallback是两个概念 blockHandler是sentinel对资源进行限流或者熔断时的处理规则 fallback是资源抛出异常后对异常捕获后的处理 定义blockHandler和fallback方法(方法名称和sentinelResoruce的参数名称需要一直并且方法必须是public修饰) public String blockHandler(BlockException ex){ex.printStackTrace();return block handler;}public String fallback(){return fallback;}所以上述代码有三段逻辑第一段正常逻辑返回hello world第二段抛出异常被fallback捕获返回fallback,第三段被sentinel限流被blockHandler处理返回block handler SentinelResoruce参数释义 参数名称类型描述valueString必需项用于指定资源的名称。这个名称通常用于在 Sentinel Dashboard 中进行监控和管理。entryTypeEntryType可选项指定 entry 的类型。默认为 EntryType.OUT表示这是一个出站调用。blockHandlerString可选项指定处理 BlockException 的函数名称。当原方法被限流或熔断时会调用这个函数进行异常处理。该函数的访问范围需要是 public返回类型需要与原方法相匹配参数类型需要和原方法相匹配并且最后加一个额外的参数类型为 BlockException。默认情况下这个函数需要和原方法在同一个类中。blockHandlerClassClass?可选项当希望使用其他类的函数作为 blockHandler 时可以指定这个类的 Class 对象。注意对应的函数必须为 static 函数。fallbackString可选项指定回退函数名称当原方法调用失败时会调用这个回退函数。回退函数的签名返回值类型、参数类型需要与原方法一致。fallbackClassClass?可选项当希望使用其他类的函数作为回退函数时可以指定这个类的 Class 对象。同样对应的函数必须为 static 函数。resourceTypeint可选项用于指定资源的类型。这通常用于区分不同类型的资源以便进行更精细的控制。exceptionsToIgnoreClass? extends Throwable[]可选项指定需要忽略的异常类型。当原方法抛出这些异常时Sentinel 不会触发限流或熔断逻辑。 这个注解允许开发者对方法进行细粒度的流量控制同时提供了异常处理和回退机制确保系统的可靠性和稳定性。通过合理配置这些参数可以更加精准地控制应用的流量避免由于流量过大或异常导致的系统崩溃。 完整的service代码(资源定义) Service public class SentinelTestService {private static AtomicInteger atomicInteger new AtomicInteger(0);public String sphuTest(){// 1.5.0 版本开始可以直接利用 try-with-resources 特性try(Entry ignored SphU.entry(sphuTest)) {// 被保护的逻辑return hello world;} catch (BlockException ex) {// 处理被流控的逻辑return blocked;}}public String sphoTest() {if(SphO.entry(sphoTest)){try {return hello world;} finally{SphO.exit();}}else{//被限流了,逻辑处理return 被限流了;}}SentinelResource(value annotationTest,blockHandler blockHandler,fallback fallback)public String annotationTest(){int i atomicInteger.incrementAndGet();if(i % 2 0){return hello world;}else{throw new RuntimeException(something wrong);}}public String blockHandler(BlockException ex){ex.printStackTrace();return block handler;}public String fallback(){return fallback;} }定义sentinel规则 sentinel的规则有很多种此文章示例仅用流控来测试sentinel定义的资源信息 在config/SentinelRuleConfig下分别创建上面三个资源的流控规则如下 Configuration public class SentinelRuleConfig {PostConstructpublic void init(){ListFlowRule rules new ArrayList();FlowRule rule new FlowRule();//定义规则适用的资源名称rule.setResource(sphuTest);rule.setGrade(RuleConstant.FLOW_GRADE_QPS);//定义每秒被保护的代码块最多运行2次rule.setCount(2);rules.add(rule);FlowRule sphoTestRule new FlowRule();//定义规则适用的资源名称sphoTestRule.setResource(sphoTest);sphoTestRule.setGrade(RuleConstant.FLOW_GRADE_QPS);//定义每秒被保护的代码块最多运行2次sphoTestRule.setCount(2);rules.add(sphoTestRule);FlowRule annotationTestRule new FlowRule();//定义规则适用的资源名称annotationTestRule.setResource(annotationTest);annotationTestRule.setGrade(RuleConstant.FLOW_GRADE_QPS);//定义每秒被保护的代码块最多运行2次annotationTestRule.setCount(2);rules.add(annotationTestRule);FlowRuleManager.loadRules(rules);} }setResource设置资源名称setGrade设置流控的类型此处通过QPS即每秒的访问量setCount: 设置每秒访问量的阈值当大于2时触发sentinel流控 校验规则是否生效 新建入口SentinelTestController并分别创建三个uri对应三个资源的访问 public class SentinelTestController {Resourceprivate SentinelTestService sentinelTestService;GetMapping(/sphuTest)public String sphuTest(){return sentinelTestService.sphuTest();}GetMapping(/sphoTest)public String sphoTest(){return sentinelTestService.sphoTest();}GetMapping(/annotationTest)public String annotationTest(){return sentinelTestService.annotationTest();} }启动sentinel-boot-service项目模块并通过浏览器访问 sphuTest 访问sphuTest,可以看到正常返回hello world http://localhost:8080/sentinel/sphuTest - hello world快速刷新sphuTest可以看到blocked和hello world出现 http://localhost:8080/sentinel/sphuTest - hello world - blocked sphotest 访问sphOTest,可以看到正常返回hello world http://localhost:8080/sentinel/sphoTest - hello world快速刷新sphoTest可以看到被限流了和hello world出现 http://localhost:8080/sentinel/sphoTest - hello world - 被限流了annotationTest 低频率刷新annotationTest,可以看到hello world和fallback交替出现这里由于业务逻辑是执行一次抛一次异常异常捕获被fallback执行所以交替出现 http://localhost:8080/sentinel/annotationTest - hello world - fallback - hello world - fallback - hello world - fallback高频率刷新可以看到hello world、fallback、block handler都会出现。 在高频率刷新中可能会执行正常逻辑未限流未异常情况可能执行到fallback逻辑异常情况block handler达到设定的流控QPS阈值

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

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

相关文章

html 网站添加悬浮二维码做国外wordpress赚钱

1.镜像安装 镜像安装:Centos7安装 2.安装过程(直接以图的形式呈现) 选择你已经下载好的镜像 回车即可,等待安装 等待安装即可

怎么在网站做推广和宣传做漫画网站的需求

分类目录:《深入理解强化学习》总目录 在本文中,我们将介绍备份(Backup)的概念。备份类似于自举之间的迭代关系,对于某一个状态,它的当前价值是与它的未来价值线性相关的。 我们将与下图类似的图称为备份图…

wap医院网站模板 for dedecms v1.0应用网站

[ABC206E] Divide Both 解题记录 题意简述 给定整数 L , R L,R L,R,求满足以下条件的数对 ( x , y ) (x,y) (x,y) 的数量。 x , y x,y x,y 不互质 x ∤ y x \nmid y x∤y 且 y ∤ x y \nmid x y∤x 题目分析 正难则反,考虑用所有的满足第一条性质的…

免费家装设计网站精品网站建设价格

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k 4 输出: 4 说明: 你可以假设 k 总是…

券商 做网站毕业设计做网站有哪些需求

随着云计算、企业级应用以及物联网领域的飞速发展,当前的数据处理需求正以前所未有的规模增长,以满足存储行业不断变化的需求。这种增长导致网络带宽压力增大,并对主机计算资源(如内存和CPU)造成极大负担,进…

档案互动网站建设住房和城乡建设部网站买卖合同

①、两个字符串的删除操作 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 事例: 输入: word1 "sea", word2 "eat" 输出: 2 解释: 第一步将 "sea&…

建立网站可以赚钱吗广州优秀网站建设

温馨提示:如果你有关于产品经理方面的任何问题,欢迎关注我的微信公众号与我互动。最新的免费系统的产品经理课程《老司机带你做产品》已经推出,请关注微信公众号:iamliuwenzhi很多产品新人刚开始工作时,喜欢一拿到需求…

网站开发的数据比wordpress

一、PIL,cv2读取数据图片以及之间的转换 cv2PIL读取acv2.imread()aImage.open()读取类型数组类型PIL类型读取尺寸排列(H,W,C)(W,H,C)显示图片cv2.imshow(“a”, a)cv2.waitKey (0)a.show()相互之间转换显示Image.from…

中建南方建设集团网站页面设计高度

经常在网上看到某某公司几千万的个人敏感信息被泄露,这要是放在持牌的支付公司,可能就是一个非常大的麻烦,不但会失去用户的信任,而且可能会被吊销牌照。而现实情况是很多公司的技术研发人员并没有足够深的安全架构经验来设计一套…

金安合肥网站建设专业网站建设哪家效果好

前言 期望:100700170 实际:400040 rnk14 分全部挂没了,太行了。 T1不开longlong见祖宗,而且KH说的那个也有道理,带权之后树的重心可以不只有两个,所以最后还应该倍增的跳。(然而这个地方题解似…

文案写作网站网站备案多少天

第一部分 计算机基础知识计算机是能超高速自动进行算术运算和逻辑运算的电子机器;第一台计算机诞生于1946年(取名为ENIAC),在短短的50多年时间,已经历了四代:第一代电子管计算机、第二代晶体管计算机、第三代集成电路计算机(中小规…

海南城乡建设庁网站企业网站的基本功能

lockbit是一种勒索病毒,是一种极具破坏性的电脑病毒,它利用加密技术来锁定用户文件,并以此为条件向用户勒索钱财。lockbit病毒的传播方式有通过电子邮件附件、恶意网站、点对点网络等多种途径进行传播。这种病毒一旦侵入电脑系统,…

企业做网站需要什么手续吗wap网站教程

我们使用Win10系统久了难免会出现许多问题,像有的用户就遇到了打开软件显示“此应用无法在你电脑上运行”的提示,很多人以为是软件自身的问题,其实我们的电脑没有设置好的话也会出现这种不兼容的情况,下面给大家带来解决办法。 解…

最版网站建设案例动画制作视频

目录 104.二叉树的最大深度 100.相同的树 226.翻转二叉树 101.对称二叉树 105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 117.填充每个节点的下一个右侧节点指针Ⅱ 104.二叉树的最大深度 题意: 给定一个二叉树 root ,返回其…

网站建设流程与构架wordpress主题idown

相关题目: 325. 和等于 k 的最长子数组长度 525. 连续数组 class Solution:"""325. 和等于 k 的最长子数组长度巧用前缀和数组,并优化浅醉和数组为单变量"""def findMaxLength(self, nums: List[int], k: int) -> i…

南京网站建设包括哪些私人可以做org后缀网站吗

柱形图 柱形图,又称长条图、柱状统计图、条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析…

赣州网站推广哪家最专业环保局网站建设方案

1.泛型 1.1泛型概述 泛型的介绍 ​ 泛型是JDK5中引入的特性&#xff0c;它提供了编译时类型安全检测机制 泛型的好处 把运行时期的问题提前到了编译期间避免了强制类型转换 泛型的定义格式 <类型>: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如:…

接网站开发项目电子商务网站建设考试题

楔子 前面的预备章节中我们大致了解了如何在服务器上的 Node.js 应用出现问题时&#xff0c;从常规的错误日志、系统/进程指标以及兜底的核心转储这些角度来排查问题。这样就引出了下一个问题&#xff1a;我们知道进程的 CPU/Memory 高&#xff0c;或者拿到了进程 Crash 后的核…

大会注册网站建设长治企业网站建设

1、获取用户信息 依次询问并获取用户的姓名、年龄、性别&#xff0c;收集数据之后在控制台依次打印出来。 提示&#xff1a; 通过prompt来弹出提示框&#xff0c;收集用户信息 通过变量保存数据 2、增加年龄 询问用户年龄&#xff0c;用户输入年龄后&#xff0c;把用户输入的…