zoukankan      html  css  js  c++  java
  • [置顶] apache+tomcat集群出现的两次请求问题解决方案

    自从做了架构师,经常需要解决奇葩问题。。。。。。。。。

    现象:点击一次按钮,相应servlet收到两次请求,servlet执行了两次,导致数据错乱。

    解决方案:

    之所以出现两次请求,并不是浏览器问题,而是集群配置有问题,猜想集群中肯定配置了类似

    worker.tomcat1.socket_timeout=10这样的参数,该参数表示apache跟tomcat之间的连接时间

    如果超过10秒未返回,则apache会重新再向tomcat发送新的请求。

    解决方案:

    a、将该参数设置为:

    worker.tomcat1.socket_timeout=0或者直接去掉,因为该参数的默认值为0,代表永不超时,即永远

    不会发生超时重发引起的多次请求问题;

    b、增加另外两个参数配置:

    worker.controller.retries=1

    worker.tomcat1.retries=1

    上述两个参数值为1表示apache不会向tomcat重新发送请求。

    以上两种方案最好使用第一种,因为第二种方案虽然没有了两次请求问题,但很有可能页面会出现502网关错误,即:

    BadGateway

    The proxyserver received an invalid response from an upstream server.

    2)、ERR_CONNECTION_RESET问题:

    在相应controller执行最后添加一句代码:

    Thread.currentThread().join();

    表示必须在当前线程执行完之后才返回页面到浏览器。

  • 相关阅读:
    P3916 图的遍历
    P1656 炸铁路
    P6722 「MCOI-01」Village 村庄
    P1341 无序字母对
    P1072 [NOIP2009 提高组] Hankson 的趣味题
    10大主流自动化测试工具介绍
    Altium Designer中off grid pin问题的解决方法
    Easylogging++的使用及扩展
    博客园粒子特效稳定版
    C#中使用jieba.NET、WordCloudSharp制作词云图
  • 原文地址:https://www.cnblogs.com/iamconan/p/7383524.html
Copyright © 2011-2022 走看看