zoukankan      html  css  js  c++  java
  • 【spring cloud】并发测试问题

    一,问题

         并发测试,对外接口测试50个并发的时候开发报错,报错信息类似如下:

     {"status":"0500","message":"GiftExchangeOrderClient#queryExchangeGifts(String,String,String,String) could not be queued for execution and no fallback available.","data":null}
     

    二,方案

    hystrix:
      command:
        default:
          execution:
            timeout:
              enabled: true
            isolation:
              strategy: THREAD
              semaphore:
                maxConcurrentRequests: ${HYSTRIX_COMMAND_MAXCONCURRENTREQUESTS:1000}
              thread:
                timeoutInMilliseconds: ${HYSTRIX_COMMAND_TIMEOUTINMILLISECONDS:30000}
      threadpool:
        default:
          ## 并发执行的最大线程数,默认10
          coreSize: ${HYSTRIX_THREADPOOL_CORESIZE:500}
          ## BlockingQueue的最大队列数
          maxQueueSize: ${HYSTRIX_THREADPOOL_MAXQUEUESIZE:500}
          ## 即使maxQueueSize没有达到,达到queueSizeRejectionThreshold该值后,请求也会被拒绝
          queueSizeRejectionThreshold: ${HYSTRIX_THREADPOOL_QUEUESIZEREJECTIONTHRESHOLD:300}

    三,原理

       1:hystrix的连接线程池限制

    ## 并发执行的最大线程数,默认10
          coreSize: ${HYSTRIX_THREADPOOL_CORESIZE:500}
          ## BlockingQueue的最大队列数
          maxQueueSize: ${HYSTRIX_THREADPOOL_MAXQUEUESIZE:500}
          ## 即使maxQueueSize没有达到,达到queueSizeRejectionThreshold该值后,请求也会被拒绝
          queueSizeRejectionThreshold: ${HYSTRIX_THREADPOOL_QUEUESIZEREJECTIONTHRESHOLD:300}

      2:hystrix的超时设置

         并发大的情况下,响应时间会很长,hystrix的默认超时时间是3秒内,故也会报接口错误问题

       调整

     timeoutInMilliseconds: 30000


    除了hystrix的超时设置之外,还有ribbon超时设置


    四,其他方案
    1: 接口增加缓存
    2: 接口调用优化,重复调用的接口考虑优化

        

    
    
  • 相关阅读:
    JDK1.7签名APK异常
    tomcat设置虚拟目录
    java runtime.exec() 的讲解(转贴)
    linux 下 .sh 文件语法
    Maven基础-配置远程仓库
    jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual)
    jdk工具keytool和jarsigner帮助Part1(jdk keytool&jarsigner tool manual)
    spring mvc + freemarker 引入静态文件(css,img,js)
    FilterDispatcher 的作用
    Struts2 过滤器与拦截器
  • 原文地址:https://www.cnblogs.com/lodor/p/7716244.html
Copyright © 2011-2022 走看看