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,否则可能会一直重试。

      超时之后的处理策略:

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

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

        等待页/错误页

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

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

        

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    快速排序模板
    C++面试题目汇总
    二叉树两个节点的最大路径
    vim中操作的快捷键
    剑指offer 顺时针打印矩阵
    剑指offer 判断一棵树是不是另一棵树的子结构
    poi导出excel表
    java 获取服务器(ftp)指定文件夹内的文件
    部署web应用
    tomcat 的目录结构及修改端口号
  • 原文地址:https://www.cnblogs.com/walker993/p/14698093.html
Copyright © 2011-2022 走看看