一,问题

并发测试,对外接口测试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: 接口调用优化,重复调用的接口考虑优化

最新文章

  1. ASP.NET MVC5 网站开发实践(二) Member区域 - 全部文章列表
  2. DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 的使用已经过时!
  3. Introduction - SNMP Tutorial
  4. 使用count结合nvl函数时碰到的问题
  5. linux实践之程序破解
  6. i.Windows下APR安装过程
  7. UIkit – 轻量级前端框架,帮助你快速构建 Web 界面
  8. Lua-泛型for循环 pairs和ipairs的区别
  9. Python 开发轻量级爬虫03
  10. HashedWheelTimer 原理
  11. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
  12. Excel取消保护密码
  13. 扩展Oracle表空间
  14. Ext.Net学习笔记06:Ext.Net DirectEvents用方补充
  15. LDAP-常用命令
  16. HDU 4970 Killing Monsters
  17. AES加密解密算法
  18. paperpass
  19. codeforces 1051 D. Bicolorings (DP)
  20. PhantomJSのメモいろいろ

热门文章

  1. JavaScript高级程序设计学习
  2. telnet测试端口是否正常打开
  3. python实现文件下载的方法总结
  4. java基础之io流总结三:字节流读写
  5. resin3.X那些事之resin.conf
  6. 用rand5()生成rand(n)
  7. 【HDU4960】Another OCD Patient
  8. 【HDU3949】XOR
  9. 代理模式 静态代理、JDK动态代理、Cglib动态代理
  10. 5.python之pip安装模块失败