zoukankan      html  css  js  c++  java
  • 超时和重试机制

    超时:如果不设置超时时间,慢请求累积导致连锁反应,造成应用雪崩。超时主要处理的是网络连接和读写超时

    重试:重试次数不能太多,否则会把请求数放大数倍,应该和熔断、快速失败机制配合

    6.2 代理层超时与重试

      6.2.1 Nginx

      提供了 客户端超时设置、DNS解析超时设置、代理超时设置、Lua相关超时设置

    6.3 Web容器超时

      比如Tomcat 8.5

      1. 建立连接和接收请求之间的等待超时时间,默认60秒

      2. 从客户端读取请求数据的超时时间,默认60秒

      3. Servlet3异步请求超时时间,默认30秒

      4. 文件上传超时时间

      5. http长连接超时时间

    6.4 中间件客户端超时与重试

    6.5 数据库客户端超时

      数据库连接池超时设置

    6.6 NoSQL客户端超时

      比如redis获取连接池连接的超时时间和读超时时间

    6.7 业务超时

      1. 任务型:订单超时未支付,通过Worker定期扫描数据库更改状态。

      2. 服务调用型:远程调用超时,设置调用的等待时间

    6.8 前端Ajax超时

      在请求时带上timeout参数设置超时时间

    6.9 总结

      通过配置超时时间,防止因为依赖系统超时而拖垮自己的服务。

      当出现多级依赖关系,如A调用B,B调用C,那么超时时间一般应该是A>B>C,否则可能会一直重试。

      超时之后的处理策略:

        重试:等待并重试,重试其他分组/机房服务

        托底:返回历史数据/缓存数据

        等待页/错误页

      对于写服务,如果对方不支持幂等,则不应该重试。

      对于重试时间的设置,太短会造成大量失败的重复请求,太长会影响用户体验。

        

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    mysql面试题
    Excel下载打不开
    Linux安装jdk1.8和配置环境变量
    Linux压缩、解压文件
    Linux常用命令1
    VMware下载安装及CentOS7下载安装
    ueditor的简单配置和使用
    linux的tomcat服务器上部署项目的方法
    TortoiseSVN客户端的使用说明
    CentOS 6.5系统上安装SVN服务器
  • 原文地址:https://www.cnblogs.com/walker993/p/14698093.html
Copyright © 2011-2022 走看看