【spring cloud】并发测试问题
一,问题
并发测试,对外接口测试50个并发的时候开发报错,报错信息类似如下:
二,方案
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: 接口调用优化,重复调用的接口考虑优化
【spring cloud】并发测试问题的更多相关文章
- 记一次Spring Cloud压力测试
前言 公司打算举办一场活动,现场参与活动人数比较多.针对于可能访问比较密集的接口进行压力测试.使用jmeter进行测试,请求并发稍微多些,系统就会挂起. 针对压力测试出现的问题,因为并发超过1秒钟10 ...
- Spring Cloud使用样例
Spring Cloud Demo 项目地址:https://github.com/hackyoMa/spring-cloud-demo 组件 基于Spring Boot 2.0.4.Spring C ...
- Spring cloud Eureka错误锦集(二)
最近学习spring cloud,在测试Eureka作为服务注册中心的时候碰到了问题,错误提示如下: "D:\Program\Java\JDK1.8\bin\java" -XX:T ...
- 5.Spring Cloud初相识-------Hystrix熔断器
前言: 1.介绍Hystrix 在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时.异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情.Hy ...
- Spring Cloud & Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboar ...
- spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
一.项目介绍(本项目用的编程语言是jdk8,项目源码:https://github.com/zhzhair/spring-boot-druid.git) 1.引入pom依赖: <dependen ...
- Spring Cloud Contract 微服务契约测试
简介 使用场景 主要用于在微服务架构下做CDC(消费者驱动契约)测试.下图展示了多个微服务的调用,如果我们更改了一个模块要如何进行测试呢? 传统的两种测试思路 模拟生产环境部署所有的微服务,然后进行测 ...
- SpringCloud升级之路2020.0.x版-24.测试Spring Cloud LoadBalancer
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 通过单元测试,我们 ...
- Spring Cloud Gateway、并发编程等等
2019年 JUC线程池服务ExecutorService接口实现源码分析 Github Page:http://www.throwable.club/2019/07/27/java-concurre ...
随机推荐
- temp8
- 使用GY89的BMP180模块获取温度和压强(海拔)
最近要用一下GY89,GY89有三个模块,温度压强.加速度计.陀螺仪.通过不同的片选信号来选择. mbed库上都写好了,挺好的. 以下是自己的代码: #include "mbed.h&quo ...
- How To Install Git on CentOS 7
Introduction Version control has become an indispensable tool in modern software development. Versio ...
- Vulkan Tutorial 01 开发环境搭建之Windows
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么 ...
- mixer音量的设置:amixer小工具的…
1.关于alsa-utils和lib的移植我的上一篇博文中已经说明了,下面我就来说说我的混音器mixer音量控制的调节过程,网上的很多方法都是比较基本的入门没有知名具体的操作方法,在此我来谈谈我的设置 ...
- idata的各个类型
idata是51系列单片机能识别的存储器类型之一,固定指前面0x00-0xff的256个字节的片内RAM,其中前128字节和data的128字节完全相同,只是因为访问的方式不同.idata是用类似C中 ...
- js的两种查询方式 LHS and RHS
为了进一步理解,我们需要多介绍一点编译器的术语.编译器在编译过程的第二步中生成了代码,引擎执行它时,会通过查找变量 a 来判断它是否已声明过.查找的过程由作用域进行协助,但是引擎执行怎样的查找,会影响 ...
- Win10 linux子系统Ubuntu下显示图形界面
转载 https://jingyan.baidu.com/article/ed2a5d1f98577809f6be17a3.html 打开终端界面,在这个窗口测试一下ls命令,无误. # 更新 sud ...
- Browsersync 简介 and 使用
简介 省时的浏览器同步测试工具,Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面. 曾经我们每改一次的代码,都需要手动去刷新一次 ...
- Django----解决跨域
cors(跨域资源共享): 本质设置响应头 定制中间件 cors.py 后在settings.py中间件中配置 from django.utils.deprecation import Middlew ...