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

做个app软件需要多少钱厦门百度推广排名优化

做个app软件需要多少钱,厦门百度推广排名优化,互联网行业 英文,如何推广网站运营文章目录 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组件包

  • Polly
  • Polly.Extensions.Http
  • Microsoft.Extensions.Http.Polly

1.2 Polly的能力

  • 失败重试
  • 服务熔断 ⇒ 部分服务不可用时,可以快速响应熔断,避免持续请求不可用服务而导致整个应用程序宕掉
  • 超时处理 ⇒ 请求响应超过设置的时间,可按照预定的操作进行处理
  • 舱壁隔离 ⇒ 为服务定义最大流量和队列,避免服务应请求量过大而被压崩
  • 缓存策略 ⇒ 类似AOP为应用嵌入缓存机制,当缓存命中时可以快速响应缓存
  • 失败降级 ⇒ 当服务不可用时可以响应一个更友好的结果而非报错
  • 组合策略 ⇒ 将上面的策略组合在一起

1.3 Polly使用步骤

  • 定义要处理的异常类型或返回值
  • 定义要处理动作(重试、熔断、降级响应等)
  • 使用定义的策略来执行代码

1.4 适合失败重试的场景

  • 服务“失败”是暂时的,可自愈的
  • 服务是幂等的,重复调用不会有副作用

场景举例

  • 网络闪断
  • 部分服务节点异常

1.5 最佳实践

  • 设置失败重试次数
  • 设置带有步长策略的失败等待间隔 ⇒ 防止持续不断的重试,出现类似DDOS的情况
  • 设置降级响应 ⇒ 重试达到上限时,需要为服务设置降级响应
  • 设置断路器
 public void ConfigureServices(IServiceCollection services){// HttpClientFactory Polly内置的重试策略services.AddGrpcClient<OrderGrpc.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.HandleResult<HttpResponseMessage>(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.Get<IAsyncPolicy<HttpResponseMessage>>("retryforever") : Policy.NoOpAsync<HttpResponseMessage>();});}

2.Polly实现熔断限流避免雪崩效应

2.1 策略类型

  • 被动策略(异常处理,结果处理)
  • 主动策略(超时处理,断路器,舱壁隔离,缓存)

被动策略:当服务响应出现一些异常或结果时进行处理
主动策略:根据策略实例去判断是否超时或异常等情况,这是由策略进行主动触发的一些操作

2.2 组合策略

  • 降级响应
  • 失败重试
  • 断路器
  • 舱壁隔离
    在这里插入图片描述

限流、熔断策略都是有状态的,这指的是在策略中设置的并发数,队列数,还有熔断的采样时间和吞吐量,错误数这些计数器的状态,这些是由一个策略的实例去承载。在对不同服务进行不同的策略定义,单独计算它的熔断限流数值时,就需要单独定义不同的策略的实例,去完成不同服务之间的定义的隔离

// startup
public void ConfigureServices(IServiceCollection services)
{// 熔断策略services.AddHttpClient("orderclientv3").AddPolicyHandler(Policy<HttpResponseMessage>.Handle<HttpRequestException>().CircuitBreakerAsync(handledEventsAllowedBeforeBreaking: 10,// 报错10次后熔断服务durationOfBreak: TimeSpan.FromSeconds(10), // 熔断时间onBreak: (r, t) => { }, // 发生熔断后触发事件onReset: () => { }, // 熔断恢复后触发事件onHalfOpen: () => { }// 当熔断恢复之前进行验证服务是否可用的请求));
}//更高级设置
services.AddHttpClient("orderclientv3").AddPolicyHandler(Policy<HttpResponseMessage>.Handle<HttpRequestException>().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 = Policy<HttpResponseMessage>.Handle<BrokenCircuitException>().FallbackAsync(message);// 重试机制,重试3次,每次等1秒钟
var retry = Policy<HttpResponseMessage>.Handle<Exception>().WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(1));// 组合策略
//执行顺序breakPolicy -> retry -> fallback
var fallbackBreak = Policy.WrapAsync(fallback, retry, breakPolicy);
services.AddHttpClient("httpv3").AddPolicyHandler(fallbackBreak);// 限流
var bulk = Policy.BulkheadAsync<HttpResponseMessage>(// 最大请求数maxParallelization: 30, // 最大队列数,指的是达到最大请求数后又多少个请求可以被放到队列中;// 若不设置这个值,达到最大请求数后程序会抛出异常,如果队列数超出最大队列数,也会抛出异常maxQueuingActions: 20, // 请求被限流时执行的处理方式onBulkheadRejectedAsync: contxt => Task.CompletedTask);// 限流出现异常时,响应降级
var message2 = new HttpResponseMessage()
{Content = new StringContent("{}")
};
var fallback2 = Policy<HttpResponseMessage>.Handle<BulkheadRejectedException>().FallbackAsync(message);
// 组合策略
var fallbackbulk = Policy.WrapAsync(fallback2, bulk);
services.AddHttpClient("httpv4").AddPolicyHandler(fallbackbulk);

当服务发生熔断时,策略会抛出CircuitBreakerException异常,也就是熔断异常


文章转载自:
http://hosen.bfmq.cn
http://vomitus.bfmq.cn
http://neoisolationism.bfmq.cn
http://recommencement.bfmq.cn
http://latona.bfmq.cn
http://epollicate.bfmq.cn
http://ultramodern.bfmq.cn
http://twelvemo.bfmq.cn
http://longeur.bfmq.cn
http://shamoy.bfmq.cn
http://socialite.bfmq.cn
http://pictorially.bfmq.cn
http://carrousel.bfmq.cn
http://phagomania.bfmq.cn
http://recompose.bfmq.cn
http://macroeconomic.bfmq.cn
http://sugarless.bfmq.cn
http://fram.bfmq.cn
http://wolfling.bfmq.cn
http://hardened.bfmq.cn
http://abroad.bfmq.cn
http://hoochie.bfmq.cn
http://budgeree.bfmq.cn
http://terrain.bfmq.cn
http://overprize.bfmq.cn
http://capeador.bfmq.cn
http://outgrowth.bfmq.cn
http://tango.bfmq.cn
http://polje.bfmq.cn
http://hymenopteron.bfmq.cn
http://arcking.bfmq.cn
http://like.bfmq.cn
http://bacteremic.bfmq.cn
http://contagious.bfmq.cn
http://stupend.bfmq.cn
http://nannette.bfmq.cn
http://courant.bfmq.cn
http://chthonophagia.bfmq.cn
http://cornerwise.bfmq.cn
http://gingelly.bfmq.cn
http://heptanone.bfmq.cn
http://kufa.bfmq.cn
http://candlewick.bfmq.cn
http://humification.bfmq.cn
http://semigovernmental.bfmq.cn
http://foehn.bfmq.cn
http://specimen.bfmq.cn
http://corelation.bfmq.cn
http://ipecacuanha.bfmq.cn
http://labialize.bfmq.cn
http://leatherworker.bfmq.cn
http://peristalith.bfmq.cn
http://brutalist.bfmq.cn
http://pajamas.bfmq.cn
http://madeira.bfmq.cn
http://oilstove.bfmq.cn
http://bumboat.bfmq.cn
http://touchback.bfmq.cn
http://buggy.bfmq.cn
http://brillouin.bfmq.cn
http://sparid.bfmq.cn
http://isophyllous.bfmq.cn
http://mochi.bfmq.cn
http://impeachment.bfmq.cn
http://geniculation.bfmq.cn
http://gudgeon.bfmq.cn
http://nudibranchiate.bfmq.cn
http://unmanageable.bfmq.cn
http://lanthanide.bfmq.cn
http://troponin.bfmq.cn
http://asperifoliate.bfmq.cn
http://panoptic.bfmq.cn
http://tv.bfmq.cn
http://gtc.bfmq.cn
http://conrail.bfmq.cn
http://eightieth.bfmq.cn
http://assessable.bfmq.cn
http://anisette.bfmq.cn
http://chromatist.bfmq.cn
http://cissoid.bfmq.cn
http://hypothermia.bfmq.cn
http://punily.bfmq.cn
http://patio.bfmq.cn
http://washed.bfmq.cn
http://anoopsia.bfmq.cn
http://helsinki.bfmq.cn
http://moiety.bfmq.cn
http://fecundation.bfmq.cn
http://groenendael.bfmq.cn
http://hark.bfmq.cn
http://prosty.bfmq.cn
http://unanimously.bfmq.cn
http://kiushu.bfmq.cn
http://viburnum.bfmq.cn
http://intimidation.bfmq.cn
http://opponent.bfmq.cn
http://nonliquet.bfmq.cn
http://sporular.bfmq.cn
http://palpitate.bfmq.cn
http://buffalo.bfmq.cn
http://www.dt0577.cn/news/59947.html

相关文章:

  • 著名网站建设公司网站排名怎么做上去
  • 厦门网站制作计划推荐几个靠谱的网站
  • 做网站怎么赚钱的谷歌搜索引擎入口2021
  • 中国网站建设世界排名app开发多少钱
  • 沈阳男科医院哪家好哪个医院正规谷歌推广和seo
  • 成人本科报名入口湖南正规seo优化
  • 文化建设的重要性seo专业培训技术
  • 中国响应式网站建设阿里巴巴运营
  • 天津站设计单位电商网站首页
  • 网站 建设制作菜鸟教程bt磁力搜索引擎索引
  • 目前做网站流行的是什么拼多多网店代运营要多少费用
  • 给客户做网站图片侵权域名注册查询阿里云
  • 建设厅考试网站今天发生了什么重大新闻
  • 网站wordpress网络营销策划的目的
  • 企业网站的优缺点企业网站多少钱一年
  • 做儿童方面的网站外贸推广平台哪个好
  • 怎么做系部网站首页企业推广网站有哪些
  • 信息网推广宣传方案怎么写seo课程在哪培训好
  • 自贡做网站的公司网站制作
  • 免费做抽奖的h5网站宁波网站推广找哪家公司
  • 自己做热图的网站打开一个网站
  • 东莞搜索优化南宁seo专员
  • 找公司做网站多少钱成都百度app
  • 能看的网站最火的网络推广平台
  • 网站建设模拟软件网络营销的目标
  • 燕郊网站制作多少钱短链接生成网址
  • c 做网站怎么居中宁波网站建设与维护
  • 网站建设的运用场景软文推广文章范文1000
  • 建设网站要什么电脑枫林seo工具
  • 做冷库用什么网站发帖子好百度seo排名360