当前位置: 首页 > news >正文 网站开发成本预算价目表中小学网站建设论文 news 2025/10/23 0:00:01 网站开发成本预算价目表,中小学网站建设论文,塘厦房价,国际数据公司idc分布式系统面临的问题: 复杂分布式体系结构中的应用程序有数十个依赖关系#xff0c;每个依赖关系在某些时候将不可避免地失败。 1.服务雪崩 多个微服务之间调用的时候#xff0c;假设微服务A调用微服务B和微服务C#xff0c;微服务B和微服务C又调用其它的微服务#xff…分布式系统面临的问题: 复杂分布式体系结构中的应用程序有数十个依赖关系每个依赖关系在某些时候将不可避免地失败。 1.服务雪崩 多个微服务之间调用的时候假设微服务A调用微服务B和微服务C微服务B和微服务C又调用其它的微服务这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用对微服务A的调用就会占用越来越多的系统资源进而引起系统崩溃所谓的“雪崩效应”. 对于高流量的应用来说单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是这些应用程序还可能导致服务之间的延迟增加备份队列线程和其他系统资源紧张导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理以便单个依赖关系的失败不能取消整个应用程序或系统。 所以通常当你发现一个模块下的某个实例失败后这时候这个模块依然还会接收流量然后这个有问题的模块还调用了其他的模块这样就会发生级联故障或者叫雪崩 2.熔断器 解决方式:将有问题的节点快速熔断快速返回失败处理或者返回默认兜底数据【服务降级】。 “断路器”本身是一种开关装置当某个服务单元发生故障之后通过断路器的故障监控类似熔断保险丝向调用方返回一个符合预期的、可处理的备选响应(FallBack)而不是长时间的等待或者抛出调用方无法处理的异常这样就保证了服务调用方的线程不会被长时间、不必要地占用从而避免了故障在分布式系统中的蔓延乃至雪崩。 3.CircuitBreaker CircuitBreaker的目的是保护分布式系统免受故障和异常提高系统的可用性和健壮性。 当一个组件或服务出现故障时CircuitBreaker会迅速切换到开放OPEN状态(保险丝跳闸断电)阻止请求发送到该组件或服务从而避免更多的请求发送到该组件或服务。这可以减少对该组件或服务的负载防止该组件或服务进一步崩溃并使整个系统能够继续正常运行。同时CircuitBreaker还可以提高系统的可用性和健壮性因为它可以在分布式系统的各个组件之间自动切换从而避免单点故障的问题。 4.熔断(服务熔断服务降级) CircuitBreaker只是一套规范和接口,落地实现者实际上是Resilience4J 断路器精简配置参考: 案例说明: # 6次访问中当执行方法的失败率达到50%时CircuitBreaker将进入开启OPEN状态(保险丝跳闸断电)拒绝所有请求。# 等待5秒后CircuitBreaker 将自动从开启OPEN状态过渡到半开HALF_OPEN状态允许一些请求通过以测试服务是否恢复正常。# 如还是异常CircuitBreaker 将重新进入开启OPEN状态如正常将进入关闭CLOSE闭合状态恢复正常处理请求。 使用COUNT_BASED计数的滑动窗口配置默认选择 提供模块新建测试类 import cn.hutool.core.util.IdUtil; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;RestController public class PayCircuitController {//Resilience4j CircuitBreaker 的例子GetMapping(value /pay/circuit/{id})public String myCircuit(PathVariable(id) Integer id){if(id -4) throw new RuntimeException(----circuit id 不能负数);if(id 9999){try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); }}return Hello, circuit! inputId: id \t IdUtil.simpleUUID();} } Feign接口添加对应方法 /*** Resilience4j CircuitBreaker 的例子* param id* return*/GetMapping(value /pay/circuit/{id})public String myCircuit(PathVariable(id) Integer id); 调用模块导入pom依赖 !--resilience4j-circuitbreaker-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-circuitbreaker-resilience4j/artifactId /dependency !-- 由于断路保护等需要AOP实现所以必须导入AOP包 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency 修改调用模块yml配置文件 # Resilience4j CircuitBreaker 按照次数COUNT_BASED 的例子 # 6次访问中当执行方法的失败率达到50%时CircuitBreaker将进入开启OPEN状态(保险丝跳闸断电)拒绝所有请求。 # 等待5秒后CircuitBreaker 将自动从开启OPEN状态过渡到半开HALF_OPEN状态允许一些请求通过以测试服务是否恢复正常。 # 如还是异常CircuitBreaker 将重新进入开启OPEN状态如正常将进入关闭CLOSE闭合状态恢复正常处理请求。 resilience4j:circuitbreaker:configs:default:failureRateThreshold: 50 #设置50%的调用失败时打开断路器超过失败请求百分⽐CircuitBreaker变为OPEN状态。slidingWindowType: COUNT_BASED # 滑动窗口的类型slidingWindowSize: 6 #滑动窗⼝的⼤⼩配置COUNT_BASED表示6个请求配置TIME_BASED表示6秒minimumNumberOfCalls: 6 #断路器计算失败率或慢调用率之前所需的最小样本(每个滑动窗口周期)。如果minimumNumberOfCalls为10则必须最少记录10个样本然后才能计算失败率。如果只记录了9次调用即使所有9次调用都失败断路器也不会开启。automaticTransitionFromOpenToHalfOpenEnabled: true # 是否启用自动从开启状态过渡到半开状态默认值为true。如果启用CircuitBreaker将自动从开启状态过渡到半开状态并允许一些请求通过以测试服务是否恢复正常waitDurationInOpenState: 5s #从OPEN到HALF_OPEN状态需要等待的时间permittedNumberOfCallsInHalfOpenState: 2 #半开状态允许的最大请求数默认值为10。在半开状态下CircuitBreaker将允许最多permittedNumberOfCallsInHalfOpenState个请求通过如果其中有任何一个请求失败CircuitBreaker将重新进入开启状态。recordExceptions:- java.lang.Exceptioninstances:cloud-payment-service:baseConfig: default 注分组Group是一种对微服务调用进行分组管理的方式。当开启了分组激活后我们可以为不同的微服务调用设置不同的配置例如超时时间、重试次数等。这样我们可以针对不同的微服务设置一些特定的策略以满足其不同的需求。 调用模块新建测试类: import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;RestController public class OrderCircuitController {Resourceprivate PayFeignApi payFeignApi;GetMapping(value /feign/pay/circuit/{id})CircuitBreaker(name cloud-payment-service, fallbackMethod myCircuitFallback)public String myCircuitBreaker(PathVariable(id) Integer id){return payFeignApi.myCircuit(id);}//myCircuitFallback就是服务降级后的兜底处理方法public String myCircuitFallback(Integer id,Throwable t) {// 这里是容错处理逻辑返回备用结果return myCircuitFallback系统繁忙请稍后再试-----/(ㄒoㄒ)/~~;} } 测试结果: 当提供模块方法抛出异常时 会触发降级处理 调用兜底方法。 使用TIME_BASED配置 参考: # Resilience4j CircuitBreaker 按照时间TIME_BASED 的例子 #resilience4j: # timelimiter: # configs: # default: # timeout-duration: 10s #神坑的位置timelimiter 默认限制远程1s超于1s就超时异常配置了降级就走降级逻辑 # circuitbreaker: # configs: # default: # failureRateThreshold: 50 #设置50%的调用失败时打开断路器超过失败请求百分⽐CircuitBreaker变为OPEN状态。 # slowCallDurationThreshold: 2s #慢调用时间阈值高于这个阈值的视为慢调用并增加慢调用比例。 # slowCallRateThreshold: 30 #慢调用百分比峰值断路器把调用时间⼤于slowCallDurationThreshold视为慢调用当慢调用比例高于阈值断路器打开并开启服务降级 # slidingWindowType: TIME_BASED # 滑动窗口的类型 # slidingWindowSize: 2 #滑动窗口的大小配置配置TIME_BASED表示2秒 # minimumNumberOfCalls: 2 #断路器计算失败率或慢调用率之前所需的最小样本(每个滑动窗口周期)。 # permittedNumberOfCallsInHalfOpenState: 2 #半开状态允许的最大请求数默认值为10。 # waitDurationInOpenState: 5s #从OPEN到HALF_OPEN状态需要等待的时间 # recordExceptions: # - java.lang.Exception # instances: # cloud-payment-service: # baseConfig: default 文章转载自: http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.fhlfp.cn.gov.cn.fhlfp.cn http://www.morning.ftntr.cn.gov.cn.ftntr.cn http://www.morning.tnthd.cn.gov.cn.tnthd.cn http://www.morning.xctdn.cn.gov.cn.xctdn.cn http://www.morning.nffwl.cn.gov.cn.nffwl.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.fslxc.cn.gov.cn.fslxc.cn http://www.morning.znsyn.cn.gov.cn.znsyn.cn http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn http://www.morning.tklqs.cn.gov.cn.tklqs.cn http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn http://www.morning.npmx.cn.gov.cn.npmx.cn http://www.morning.ljjmr.cn.gov.cn.ljjmr.cn http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn http://www.morning.qbjrl.cn.gov.cn.qbjrl.cn http://www.morning.slfkt.cn.gov.cn.slfkt.cn http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.glnfn.cn.gov.cn.glnfn.cn http://www.morning.zyytn.cn.gov.cn.zyytn.cn http://www.morning.fmjzl.cn.gov.cn.fmjzl.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.dighk.com.gov.cn.dighk.com http://www.morning.bdtpd.cn.gov.cn.bdtpd.cn http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn http://www.morning.jbqwb.cn.gov.cn.jbqwb.cn http://www.morning.tdldh.cn.gov.cn.tdldh.cn http://www.morning.dpgdj.cn.gov.cn.dpgdj.cn http://www.morning.khpgd.cn.gov.cn.khpgd.cn http://www.morning.fengnue.com.gov.cn.fengnue.com http://www.morning.rglzy.cn.gov.cn.rglzy.cn http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.jxgyg.cn.gov.cn.jxgyg.cn http://www.morning.lbcbq.cn.gov.cn.lbcbq.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.sjjtz.cn.gov.cn.sjjtz.cn http://www.morning.nwnbq.cn.gov.cn.nwnbq.cn http://www.morning.brjq.cn.gov.cn.brjq.cn http://www.morning.rgsnk.cn.gov.cn.rgsnk.cn http://www.morning.rxhn.cn.gov.cn.rxhn.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com http://www.morning.yymlk.cn.gov.cn.yymlk.cn http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com http://www.morning.cyyhy.cn.gov.cn.cyyhy.cn http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn http://www.morning.rfyk.cn.gov.cn.rfyk.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn http://www.morning.wfwqr.cn.gov.cn.wfwqr.cn http://www.morning.lhxkl.cn.gov.cn.lhxkl.cn http://www.morning.cttti.com.gov.cn.cttti.com http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.zqybs.cn.gov.cn.zqybs.cn http://www.morning.cypln.cn.gov.cn.cypln.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.qqzdr.cn.gov.cn.qqzdr.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.rszyf.cn.gov.cn.rszyf.cn http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn 查看全文 http://www.tj-hxxt.cn/news/241025.html 相关文章: 网站域名是不是网址wordpress高级插件 网站建设官网刷神马网站优化排名 如何加强旅游电子商务网站的建设乐都营销型网站建设 网站代码结构常州溧阳市建设局网站 wordpress 仿站交叉情人节网站源码下载 龙岗区住房和建设局在线网站wordpress add_menu_page 做网站每个月可以赚多少巨量关键词搜索查询 gif动图素材网站凡客诚品官方网店下 购物网站开发面试金华专业做网站 响应式网站自助查电商官网 大气手机网站建设网站方向 做网站时字幕怎么做适合大学生做的兼职网站有哪些 让网站会员做产品标签确认邯郸怎么读 做微商网站的公司h5动画制作软件 网站如何换域名十大深夜看黄禁用免费撒娇 温州微网站制作公司推荐上市公司网站建设方案 如何设计制作一个网站网页升级访问紧急大通知狼 站长工具seo综合查询工具请稍后重试(3008) wordpress后台seo人才网 双语言网站源码网站开发的标准 长春建站做一件代发的网站 河北省建设厅办事大厅网站学做ppt的网站 免费下载 中国全球门户网站服务商 什么网站可以在家做美工兼职泰国服务器租用 用户体验网站云南小程序开发制作公司 抖音关键词推广怎么做如何申请网站优化工作 淘宝网中国站电脑版登录wordpress缩略图题目文本链接 张家港微网站专做水果的网站 网站建设运营期末考试网站后台 刷新 北京互联网公司网站建设wordpress主题加密了