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

绵阳 网站 建设施工企业新聘用的项目经理因变更注册申报不及时

绵阳 网站 建设,施工企业新聘用的项目经理因变更注册申报不及时,ip子域名大全,建立网站赚钱文章目录 1. Polly实现失败重试1.1 Polly组件包1.2 Polly的能力1.3 Polly使用步骤1.4 适合失败重试的场景1.5 最佳实践 2.Polly实现熔断限流避免雪崩效应2.1 策略类型2.2 组合策略 1. Polly实现失败重试 1.1 Polly组件包 PollyPolly.Extensions.HttpMicrosoft.Extensions.Htt… 文章目录 1. Polly实现失败重试1.1 Polly组件包1.2 Polly的能力1.3 Polly使用步骤1.4 适合失败重试的场景1.5 最佳实践 2.Polly实现熔断限流避免雪崩效应2.1 策略类型2.2 组合策略 1. Polly实现失败重试 1.1 Polly组件包 PollyPolly.Extensions.HttpMicrosoft.Extensions.Http.Polly 1.2 Polly的能力 失败重试服务熔断 ⇒ 部分服务不可用时可以快速响应熔断避免持续请求不可用服务而导致整个应用程序宕掉超时处理 ⇒ 请求响应超过设置的时间可按照预定的操作进行处理舱壁隔离 ⇒ 为服务定义最大流量和队列避免服务应请求量过大而被压崩缓存策略 ⇒ 类似AOP为应用嵌入缓存机制当缓存命中时可以快速响应缓存失败降级 ⇒ 当服务不可用时可以响应一个更友好的结果而非报错组合策略 ⇒ 将上面的策略组合在一起 1.3 Polly使用步骤 定义要处理的异常类型或返回值定义要处理动作(重试、熔断、降级响应等)使用定义的策略来执行代码 1.4 适合失败重试的场景 服务“失败”是暂时的可自愈的服务是幂等的重复调用不会有副作用 场景举例 网络闪断部分服务节点异常 1.5 最佳实践 设置失败重试次数设置带有步长策略的失败等待间隔 ⇒ 防止持续不断的重试出现类似DDOS的情况设置降级响应 ⇒ 重试达到上限时,需要为服务设置降级响应设置断路器 public void ConfigureServices(IServiceCollection services){// HttpClientFactory Polly内置的重试策略services.AddGrpcClientOrderGrpc.OrderGrpcClient(options {options.Address new Uri(https://localhost:5001);}).ConfigurePrimaryHttpMessageHandler(provider {var handler new SocketsHttpHandler();handler.SslOptions.RemoteCertificateValidationCallback (a, b, c, d) true; //允许无效、或自签名证书return handler;}).AddTransientHttpErrorPolicy(p p.WaitAndRetryForeverAsync(i TimeSpan.FromSeconds(i * 3)));// 设置响应500或408时重试不指定次数直到成功// 定义个性化策略var reg services.AddPolicyRegistry();reg.Add(retryforever, Policy.HandleResultHttpResponseMessage(message {return message.StatusCode System.Net.HttpStatusCode.Created;}).RetryForeverAsync());// 应用策略services.AddHttpClient(orderclient).AddPolicyHandlerFromRegistry(retryforever);services.AddHttpClient(orderclientv2).AddPolicyHandlerFromRegistry((registry, message) {return message.Method HttpMethod.Get ? registry.GetIAsyncPolicyHttpResponseMessage(retryforever) : Policy.NoOpAsyncHttpResponseMessage();});} 2.Polly实现熔断限流避免雪崩效应 2.1 策略类型 被动策略(异常处理结果处理)主动策略超时处理断路器舱壁隔离缓存 被动策略当服务响应出现一些异常或结果时进行处理 主动策略根据策略实例去判断是否超时或异常等情况这是由策略进行主动触发的一些操作 2.2 组合策略 降级响应失败重试断路器舱壁隔离 限流、熔断策略都是有状态的这指的是在策略中设置的并发数队列数还有熔断的采样时间和吞吐量错误数这些计数器的状态这些是由一个策略的实例去承载。在对不同服务进行不同的策略定义单独计算它的熔断限流数值时就需要单独定义不同的策略的实例去完成不同服务之间的定义的隔离 // startup public void ConfigureServices(IServiceCollection services) {// 熔断策略services.AddHttpClient(orderclientv3).AddPolicyHandler(PolicyHttpResponseMessage.HandleHttpRequestException().CircuitBreakerAsync(handledEventsAllowedBeforeBreaking: 10,// 报错10次后熔断服务durationOfBreak: TimeSpan.FromSeconds(10), // 熔断时间onBreak: (r, t) { }, // 发生熔断后触发事件onReset: () { }, // 熔断恢复后触发事件onHalfOpen: () { }// 当熔断恢复之前进行验证服务是否可用的请求)); }//更高级设置 services.AddHttpClient(orderclientv3).AddPolicyHandler(PolicyHttpResponseMessage.HandleHttpRequestException().AdvancedCircuitBreakerAsync(// 请求失败比例占80%时熔断failureThreshold: 0.8,// 计算请求失败比例的时间范围,当前为10秒内80%请求失败samplingDuration: TimeSpan.FromSeconds(10),// 最小吞吐量,在达到100个请求的时候再去计算上去失败比例,用于请求量小的时候不进行熔断minimumThroughput: 100,durationOfBreak: TimeSpan.FromSeconds(20),// 熔断时长onBreak: (r, t) { }, // 发生熔断后触发事件onReset: () { },// 熔断恢复后触发事件onHalfOpen: () { }));// 当熔断恢复之前进行验证服务是否可用的请求// 服务降级 var message new HttpResponseMessage() {Content new StringContent({}) }; var fallback PolicyHttpResponseMessage.HandleBrokenCircuitException().FallbackAsync(message);// 重试机制重试3次每次等1秒钟 var retry PolicyHttpResponseMessage.HandleException().WaitAndRetryAsync(3, i TimeSpan.FromSeconds(1));// 组合策略 //执行顺序breakPolicy - retry - fallback var fallbackBreak Policy.WrapAsync(fallback, retry, breakPolicy); services.AddHttpClient(httpv3).AddPolicyHandler(fallbackBreak);// 限流 var bulk Policy.BulkheadAsyncHttpResponseMessage(// 最大请求数maxParallelization: 30, // 最大队列数,指的是达到最大请求数后又多少个请求可以被放到队列中// 若不设置这个值,达到最大请求数后程序会抛出异常如果队列数超出最大队列数也会抛出异常maxQueuingActions: 20, // 请求被限流时执行的处理方式onBulkheadRejectedAsync: contxt Task.CompletedTask);// 限流出现异常时响应降级 var message2 new HttpResponseMessage() {Content new StringContent({}) }; var fallback2 PolicyHttpResponseMessage.HandleBulkheadRejectedException().FallbackAsync(message); // 组合策略 var fallbackbulk Policy.WrapAsync(fallback2, bulk); services.AddHttpClient(httpv4).AddPolicyHandler(fallbackbulk); 当服务发生熔断时策略会抛出CircuitBreakerException异常也就是熔断异常
http://www.pierceye.com/news/965342/

相关文章:

  • 站长之家ip查询雄安哪里在建设
  • wdcp创建网站网站开发如何找甲方
  • 做网站运营用什么软件高校支付网站建设费需要入无形资产
  • 在那个网站做ppt可以赚钱网页代码怎么看
  • 免费做企业网站广州萝岗网站建设
  • 开奖网站怎么做wordpress添加广告
  • 开网站需要投资多少钱网站设计两边为什么要留白
  • 任丘市做网站价格泰州网络科技有限公司
  • wap网站使用微信登陆推广公司有哪些
  • 深圳分销网站设计制作买了winhost网站空间在哪里登陆
  • 培训网站项目ppt怎么做wordpress主题4mudi
  • 上海专业网站建设市场网站开发验收报告
  • 怎么做网站视频教程做广告牌子
  • 合肥做网站公网站设网页设计
  • 罗田做网站凡科网小程序
  • 玻璃钢产品哪个网站做推广好.加强网站安全建设
  • 扬州公司网站建设网络建设与管理包括哪些方面
  • 我的网站域名福州网站的优化
  • 威海市网站建设微信在线登录平台
  • 2014网站设计成都网站设计合理柚v米科技
  • 建设自己网站需要多钱网站规划与设计就业
  • 用flash做的网站欣赏手机网站图片切换jquery
  • 昆明做网站seo网站推广策略什么时候
  • 网站添加 百度商桥wordpress 友情链接 代码
  • 一鸿建设设计网站百家号排名
  • 网站最新一次改版时间什么意思电商平台应该如何推广
  • 网站设计制作程序网站开发列表
  • 企业网站建设需要哪些费用做算法的网站
  • 很大气的网站 营销js特效网站展示
  • 南宁建站程序成都新线加网站建设