spring cloud 并发测试及参数调优
1、测试工具
1.1、Apache JMeter 5.1.1
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
1.2、Java VisualVM 1.8
VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使用 VisualVM 进行性能分析及调优。
1.3、Spring cloud Hystrix-Dashboard
Hystrix Dashboard是Hystrix的仪表盘组件,主要用来实时监控Hystrix的各项指标信息,通过界面反馈的信息可以快速发现系统中存在的问题。
2、测试环境
2.1、Spring cloud 版本
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
2.2、Java 版本
2.3、maven 版本
2.4、mysql 版本
2.5、docker 版本
3、参数调整
3.1、Spring cloud zuul yml 参数调整(具体值参数值需要参考实际环境)
spring: application: name: zuul profiles: active: dev datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC&useSSL=true username: root password: 1156543 jpa: hibernate: ddl-auto: create show-sql: true redis: host: localhost port: 6379 password: 1654 eureka: client: serviceUrl: defaultZone: http://eureka:8761/eureka/ fetch-registry: true register-with-eureka: true instance: prefer-ip-address: true server: tomcat: max-threads: 1000 min-spare-threads: 64 max-connections: 2000 zuul: host: connect-timeout-millis: 300000 socket-timeout-millis: 300000 sensitive-headers: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 6000 management: endpoints: web: exposure: include: "*" zuul.host.maxTotalConnections: 2000 zuul.host.maxPerRouteConnections: 20 zuul.semaphore.max-semaphores: 2000
4、测试结果
Spring cloud zuul 使用 Hystrix 默认执行方式 SEMAPHORE(信号量)
4.1、并发1000测试
tomcat设置 max-threads: 1000,同时并发请求1000次,zuul的线程数量接近1000,全部返回成功,没有出现异常
4.2、并发2000测试
同时并发请求2000次,有24.95%的请求被拒绝了。
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
requests常用方法 之 get请求