【spring cloud】并发测试问题
2017-10-23 13:09
351 查看
一,问题
并发测试,对外接口测试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 四,其他方案 1: 接口增加缓存 2: 接口调用优化,重复调用的接口考虑优化
相关文章推荐
- spring cloud ribbon与提供者不在同一台服务器访问失败的问题
- spring-cloud跨域问题
- 搭建 spring cloud config 遇到的问题
- Spring Cloud出现Options Forbidden 403问题解决方法
- spring-cloud-config安全问题
- spring cloud feign 接口继承以及参数传递的问题
- 微服务开发架构——Spring Cloud常见问题与总结<二>Hystrix/Feign 整合Hystrix后首次请求失败
- springCloud+springMVC文件上传限制问题
- [Spring Cloud] Eureka 的自我保护模式及相关问题
- 使用Spring cloud Feign在后台服务之间调用传递Multipart无法传递的问题
- Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
- Spring Cloud中,Eureka常见问题总结
- Spring Cloud eureka 注册服务发现,访问管理页面是xml问题解决
- springcloud feign 注入bean null问题
- Spring Cloud 项目出现 Options Forbidden 403 问题解决
- Spring Cloud Eureka 服务注册列表显示 IP 配置问题
- springcloud项目网关升级:gateway替代zuul以及解决gateway跨域访问问题
- Spring-Cloud学习之路-问题记录
- 通过springcloud-gateway调用后台服务超时的问题
- SpringCloud应用入库后乱码问题