网站升级正在升级维护vip影视网站如何做app

web/2025/10/9 6:07:29/文章来源:
网站升级正在升级维护,vip影视网站如何做app,医疗电子网站建设,网站seo关键词排名查询Polly是.NET生态非常著名的组件包一 介绍Polly 的能力• 失败重试#xff1a;当我们服务调用失败时#xff0c;能够自动的重试• 服务熔断#xff1a;当我们服务部分不可用时#xff0c;我们的应用可以快速响应一个熔断结果#xff0c;避免持续的请求这些不可用的服务而导… Polly是.NET生态非常著名的组件包一 介绍Polly 的能力• 失败重试当我们服务调用失败时能够自动的重试• 服务熔断当我们服务部分不可用时我们的应用可以快速响应一个熔断结果避免持续的请求这些不可用的服务而导致整个应用程序出现问题• 超时处理我们为服务的请求设置一个超时时间当超过超时时间可以按照我们预定的操作进行处理比如返回一个缓存的结果。• 舱壁隔离实际上是一个限流的功能我们可以为服务定义最大的流量和队列这样可以避免我们的服务因为请求量过大而被压崩。• 缓存策略可以让我与类似于AOP方式为应用嵌入缓存的机制当缓存命中时我们可以快速地响应缓存而不是持续的请求服务。• 失败降级当我们的服务不可用时我们可以响应一个更友好的结果而不是报错。• 组合策略可以让我们将上面的 策略组合在一起按照一定的顺序我们可以对不同的场景组合不同的策略类实现我们的应用程序。Polly 使用步骤• 定义要处理的异常类型或返回值• 定义要处理动作重试、熔断、降级响应等• 使用定义的策略来执行代码适合失败重试的场景• 服务“失败”是短暂的可自愈的在失败的场景里我们可以非常有效的避免这种网络闪断这种情况• 服务是幂等的重复调用不会有副作用在失败重试情况下有可能会造成多次调用的情况因为有些失败可能是你的命令已经发出了但是你没收到响应它会重试。场景举例• 网络闪断• 部分服务节点异常重试的过程可能就可以命中到正常的节点最佳实践• 设置失败重试次数• 设置带有步长策略的失败等待间隔• 设置降级响应• 设置断路器尽量设置重试的次数尽量设置不同的间隔,否则会造成类似于DDOS的情况当我们的重试的次数达到上限以后我们应该为服务提供一个降级的响应更友好的响应结果。DDOS 全称Distributed Denial of Service中文意思为“分布式拒绝服务”就是利用大量合法的分布式服务器对目标发送请求从而导致正常合法用户无法获得服务策略的类型• 被动策略异常处理、结果处理• 主动策略超时处理、断路器、舱壁隔离、缓存组合策略• 降级响应• 失败重试• 断路器• 舱壁隔离策略与状态共享Policy类型状态说明CircuitBreaker断路器有状态共享成功失败率以决定是否熔断Bulkhead舱壁隔离有状态共享容量使用情况以决定是否执行动作Cache缓存有状态共享缓存的对象以决定是否命中其它策略无状态-有状态时间参数、次数参数等计数实例来承载的对不同的服务进行定义不同的策略二  应用我们本次使用的组件包如下:Polly Polly.Extensions.Http Microsoft.Extensions.Http.Polly瞬时Http错误重试策略  错误规则网络故障HttpRequestExceptionHTTP 5XX 状态代码服务器错误HTTP 408 状态代码请求超时有关配置策略的指南请参阅有关 PolicyHttpMessageHandler 的备注。public void ConfigureServices(IServiceCollection services) {services.AddHttpClient(myClient, conifg {conifg.BaseAddress new Uri(http://localhost:9090);}).//瞬时http错误重试策略 执行10次//抛出 HttpRequestException 或者响应码为5XX或者408AddTransientHttpErrorPolicy(p //错误重试配置  重试次数p.RetryAsync(10)).AddTransientHttpErrorPolicy(p p.WaitAndRetryAsync(10, i TimeSpan.FromSeconds(2))).AddTransientHttpErrorPolicy(p //等待第i次*两秒重试 总共重试10次 越往后等的时间越久p.WaitAndRetryAsync(10, i TimeSpan.FromSeconds(2 * i))).AddTransientHttpErrorPolicy(p //等待第i次*两秒重试 一直重试 直到成功p.WaitAndRetryForeverAsync(i TimeSpan.FromSeconds(i * 3))); }使用自定义的Http错误重试策略  可以根据HttpResponseMessage定义自己的重试条件public void ConfigureServices(IServiceCollection services) {//定义自己的策略 var reg services.AddPolicyRegistry();//根据返回的状态码自定义自己的返回策略 reg.Add(retryforever, Policy.HandleResultHttpResponseMessage(message {return message.StatusCode System.Net.HttpStatusCode.Created;}).RetryForeverAsync());//配置httpclient使用retryforever 的策略 services.AddHttpClient(myClient2). AddPolicyHandlerFromRegistry(retryforever);//根据HttpRequestMessage 来定义策略 services.AddHttpClient(myClient3). AddPolicyHandlerFromRegistry((registry, message) { return message.Method HttpMethod.Get ?registry.GetIAsyncPolicyHttpResponseMessage(retryforever) :Policy.NoOpAsyncHttpResponseMessage();});} });}熔断策略public void ConfigureServices(IServiceCollection services) {//熔断services.AddHttpClient(myClient4).AddPolicyHandler(PolicyHttpResponseMessage.HandleHttpRequestException().CircuitBreakerAsync( //报错10次后尽行熔断 handledEventsAllowedBeforeBreaking: 10, //熔断的时间 10秒 durationOfBreak: TimeSpan.FromSeconds(10), //当我们熔断时触发的一个事件 onBreak: (r, t) { },//当我们熔断恢复时的事件 onReset: () { }, //在我们恢复之前进行验证服务是否可用  //打一部分的流量去验证我们的服务是否可用的事件 onHalfOpen: () { })); } 高级熔断策略public void ConfigureServices(IServiceCollection services) { //高级熔断策略 services.AddHttpClient(myClient4). AddPolicyHandler(PolicyHttpResponseMessage. HandleHttpRequestException(). AdvancedCircuitBreakerAsync( //比例0.8服务出错进行熔断 failureThreshold: 0.8, //10秒以内 请求出错比例0.8 进行熔断 samplingDuration: TimeSpan.FromSeconds(10), //最小的吞吐量100  //当我们请求量比较小的时候 //比如说我们十秒采样范围内  //当我们的请求数超过100个时才会进行熔断  //当请求量比较小的时候是不需要熔断 minimumThroughput: 100, //熔断的时长 20秒 durationOfBreak: TimeSpan.FromSeconds(20), //当我们熔断时触发的一个事件 onBreak: (r, t) { }, //当我们熔断恢复时的事件 onReset: () { }, //在我们恢复之前进行验证服务是否可用  //打一部分的流量去验证我们的服务是否可用的事件 onHalfOpen: () { }));} 服务降级策略publicvoid ConfigureServices(IServiceCollection services){//定义服务降级的策略//当我们遇到熔断时 我们响应一个异常的友好结果//定义我们的熔断 var breakPolicy PolicyHttpResponseMessage.HandleHttpRequestException().AdvancedCircuitBreakerAsync(//百分之八十的服务出错进行熔断failureThreshold: 0.8, //10秒以内 请求出错比例0.8 进行熔断 samplingDuration: TimeSpan.FromSeconds(10), //最小的吞吐量100 //当我们请求量比较小的时候比如说我们十秒采样范围内 //当我们的请求数超过00个时才会进行熔断 //当请求量比较小的时候是不需要熔断 minimumThroughput: 100, //熔断的时长 20秒 durationOfBreak: TimeSpan.FromSeconds(20), //当我们熔断时触发的一个事件 onBreak: (r, t) { }, //当我们熔断恢复时的事件onReset: () { }, //在我们恢复之前进行验证服务是否可用 //打一部分的流量去验证我们的服务是否可用的事件 onHalfOpen: () { } ); //定义返回结果 var message2 new HttpResponseMessage() { Content new StringContent({\IsError\:true,\ErrorMsg\:\服务异常\}) }; };//定义降级策略 var fallback PolicyHttpResponseMessage.HandleBrokenCircuitException().FallbackAsync(message2);//定义重试 var retry PolicyHttpResponseMessage. HandleException(). WaitAndRetryAsync(3, i TimeSpan.FromSeconds(1)); //定义请求策略组合 var fallbackBreak Policy.WrapAsync(fallback, retry, breakPolicy); //注入HttpClient定义策略 services.AddHttpClient(myClient5). AddPolicyHandler(fallbackBreak); }} 限流策略public void ConfigureServices(IServiceCollection services) {//限流//定义请求的并发是多少var bulk Policy.BulkheadAsyncHttpResponseMessage(  //最大请求并发数    maxParallelization: 30,// 当我们请求超过30的并发数时// 剩下的请求怎么处理的问题// 如果我们不定义我们的队列数// 它就会抛出异常// 如果定义了队列数// 可以有20个请求在队列里排队// 只有超出队列的请求才会抛出异常// 让多出来的请求不至于直接报错maxQueuingActions: 20,//当我们的请求超出了并发数时怎么处理 这里可以定义自己的规则    onBulkheadRejectedAsync: context Task.CompletedTask);var message3 new HttpResponseMessage(){Content new StringContent({})};//定义超出并发数策略 var fallback2 PolicyHttpResponseMessage.HandleBulkheadRejectedException().FallbackAsync(message3);//定义限流组合策略var fallbackBulk Policy.WrapAsync(fallback2, bulk);//注入HttpClient定义策略 services.AddHttpClient(myClient6).AddPolicyHandler(fallbackBulk);} } 参考地址:http://www.thepollyproject.org https://github.com/App-vNext/Polly.git https://github.com/App-vNext/Polly.Extensions.Http.git https://github.com/App-vNext/Polly-Samples.git

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

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

相关文章

全国最大网站建站公司网站的现状

XML DOM 简介 XML DOM(XML Document Object Model)是一种用于XML文档的标准编程接口。它定义了一种方式,允许程序和脚本动态地访问和更新文档的内容、结构和样式。XML DOM 将 XML 文档视为一个树形结构,其中每个节点都代表文档中的一个元素、属性、文本或其他内容。 XML …

网站流量一直做不起来旅游网站建设步骤

织机原理为什么为什么? Java 8流背后的驱动程序之一是并发编程。 在流管道中,指定要完成的工作,然后任务将自动分配到可用处理器上: var result myData.parallelStream().map(someBusyOperation).reduce(someAssociativeBinOp)…

网站空间登陆百度域名的ip

一 安全团队检测网站 1 检测到目标主机可能存在缓慢的HTTP拒绝服务攻击 缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。 慢…

dw里面怎么做网站轮播图合肥装修公司哪家口碑最好

题目描述 给一个包含 nn 个点,mm 条边的无向连通图。从顶点 11出发,往其余所有点分别走一次并返回。 往某一个点走时,选择总长度最短的路径走。若有多条长度最短的路径,则选择经过的顶点序列字典序最小的那条路径(如路…

最专业的网站建设组织蚌埠 网站制作

目录 一、调度约束二、Pod 启动典型创建过程三、K8S的调度过程3.1 Predicate(预选策略) 常见的算法使用3.2 常见优先级选项3.3 指定调度节点3.3.1 nodeName指定3.3.2 nodeSelector指定3.3.3 Pod亲和性与反亲和1.节点亲和硬策略示例2.节点亲和软策略示例3…

51网站空间相册seo在线培训

在医院门诊室,因为肠胃不适前来看病的林先生。问及他平时的养生之道,他笑谈,现在也正困惑着呢。 原来,最近他有两个朋友,在单位体检时分别被查出患有肾结石和胆囊炎,他本人最近也犯胃病。 最令人奇怪的一…

网站建设数据各种手艺培训班

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Icon这种Widget,本章回中将介绍 如何使用字体图标。闲话休提,让我们一起Talk Flutter吧。 概念介绍 本章回中介绍的字体图标是指Icon中使用特殊的字体来充当图标,字体图标可以看作…

建企业网站网站开发软件开发流程图

外键表单组件 若依框架提供了下拉框组件&#xff0c;但是数据是枚举数据中读取&#xff0c;但是对于外键表单没有提供。定义一个TableTag <template><div><template v-for"(item, index) in options" ><template ><spanv-if"value…

可信网站认证申请中华室内设计师网

目录 1. 概要设计 1.1 服务拆分与独立部署 1.1.1 精细化拆分 1.1.2 独立部署能力 1.2 接口设计与通信机制 1.2.1 标准化接口 1.2.2 轻量级通信 1.3 数据管理与一致性 1.3.1 分布式数据管理 1.3.2 数据分区与复制 1.4 负载均衡与集群化 1.4.1 负载均衡 1.4.2 集群化…

专业的单位网站开发深圳市设计师服务平台

一个人的职业选择和成长道路会受到很多因素的影响。贾尼尼&#xff0c;这位美国第三大银行——美洲银行的创始人&#xff0c;他的银行家之路却与父亲的死有关。 1878年的一天&#xff0c;贾尼尼8岁的时候&#xff0c;同村的一个葡萄农&#xff0c;因为还不起向贾尼尼父亲借的一…

网站的反爬一般怎样做调用wordpress的文章编辑器

MQTT协议草案5.0中文版 by hui6075 最新版本: v0.0.1 2018-05-18 (部分3.3.1版本内容翻译引用 mcxiaoke) 文档地址 中文翻译项目 概述 MQTT是一个客户端-服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范&#xff0c;易于实现。这些特点使…

长沙网站建设方面公司注册网站需要提供什么文件

项目中使用docker-compose&#xff0c;并通过以下方式设置了时区 environment:- SET_CONTAINER_TIMEZONEtrue- CONTAINER_TIMEZONEAsia/Shanghai 但是并没有正确生效&#xff0c;网上有很多博客都在推荐这个做法&#xff0c;另外一种是使用标准环境标量 -TZAsia/Shangehai …

网站建设是广告吗速成建站

MS1022 是一款高精度时间测量电路&#xff0c;内部集成了模拟比 较器、模拟开关、施密特触发器等器件&#xff0c;从而大大简化了外 围电路。同时内部增加了第一波检测功能&#xff0c;使抗干扰能力大 大提高。通过读取第一个回波脉冲的相对宽度&#xff0c;用户可以获 得接…

手机网站菜单设计模板模板网站可以优化吗

一、MySQL数据库表操作 MySQL表的基本概念 在windows中有个程序叫做excel. 而Excel文件中存在了如sheet1、sheet2、sheet3的表, 所有的sheet都存储在这个Excel文件中, 在某个sheet中有相应的数据. 回到数据库和表的关系上来说, 这个Excel文件就是一个数据库, 所有的sheet就是…

超酷个人网站欣赏阿里云怎样做公司网站

在k8s中部署高可用程序实践 1. 多副本部署1.1. 副本数量1.2. 更新策略1.3. 跨节点的统一副本分布1.4. 优先级1.5. 停止容器中的进程1.6. 预留资源 2. 探针2.1. 活性探针&#xff08;liveness probes&#xff09;2.2. 就绪探针&#xff08;Readiness probe&#xff09;2.3. 启动…

阿里云服务器建网站火鸟门户系统优点

植物再生领域重大突破 山农大团队发现植物“再生指挥官”REF1&#xff1a;中国科学院院士种康高度评价&#xff0c;认为这一发现对细胞分化与再生领域的基础科学研究和生物技术应用具有重大意义。 生物医药专业园区建设\n- 卫光生命科学园聚焦合成生物学、脑科学&#xff1a…

网站建设图片怎么动无锡网站建设系统

纵观当下宿主软件市场&#xff0c;正值百家争鸣、百花齐放之际像Mac系统的Logic Pro X、传统宿主软件代表Cubase、录音师必备Pro Tools、后起之秀Studio One等&#xff0c;都在各自的领域具有极高的好评度。而在众多宿主软件中&#xff0c;有这么一款历久弥新且长盛不衰的独特宿…

盘锦建设小学网站asp.net网站开发实例

&#x1f34e;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;Linux系统网络编程 文章目录 一、协议初识和网络协议分层&#xff08;TCP/IP四层模型&#xff09;认识协议TCP/IP五层&#xff08;或四层&#xff09;模型 二、认识MAC地址和IP地址认识MAC地址认识IP地址认…

手机号注册网站鲜花网站建设项目策 划书

Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)紧接上篇文章&#xff0c;Oracle数据库架构已经创建完成&#xff0c;我的需求是&#xff1a;将老服务器上的数据库迁移到新的数据库上。这就用到impdp(导入)操作。要想实现对新数据库的impdp(导入)工作&#xff0c;首先需要…

头条权重查询站长工具网站建设公司发展方向及趋势

K8s 集群节点 CPU 使用率高&#xff01;内存溢出&#xff08;OOM&#xff09;&#xff01;宕机&#xff01;导致大量微服务瘫痪怎么办&#xff1f;可能是调度策略没做好&#xff0c;看完这篇文章掌握提高集群稳定性的管理诀窍。 Kubernetes&#xff08;K8s&#xff09;是一个开…