SpringCloud从入门到进阶(九)——单点部署Zuul的压力测试与调优(二)

  作为微服务架构系统的入口,毫无疑问,Zuul的并发性能直接决定了整个系统的并发性能。本文结合前几篇文章的内容,在云服务器中部署了包含Eureka Server,Zuul等组件的1.0版本的微服务架构,并进行单点部署Zuul的压力测试,对其并发性能一探究竟。

环境

image

说明

  转载请说明出处:SpringCloud从入门到进阶(九)——单点部署Zuul的压力测试与调优(二)

问题回顾

​  在上文中,我们在默认配置情况下,使用ApacheBench对微服务架构1.0中的Zuul和Service分别进行了压力测试,每次测试共50000个请求,并发用户数分别为50、200、500。在测试过程中我们遇到了如下三个问题:

​  问题一:Zuul端转发请求的线程数与后端Service处理请求的线程数不一致,它们之间是什么关系呢?

​  问题二:Zuul为什么会在Serivce正常的情况下出现服务熔断呢?

​  问题三:为什么后端Service的并发线程数量达到200后没有随并发用户数的进一步增大而增大呢?

​  下面,我们按照由易到难的顺序进行剖析这些问题,探究Zuul如何进行调优。

问题三 问题剖析

​  为什么后端Service的并发线程数量达到200后没有随并发用户数的增大而增大呢?

​  SpringBoot默认使用8.5版本的Tomcat作为内嵌的Web容器。因此Zuul或Service接收到的请求时,都是由Tomcat中Connector的线程池数量决定,也就是worker线程数。

  Tomcat中默认的worker线程数的最大值为200(官方文档中有说明),可以在yaml中增加server.tomcat.max-threads属性来设置worker线程数的最大值。

配置调优

  因此,问题三的解决方案是在Zuul端和Service端的yaml中增加如下配置:

#增大tomcat中worker的最大线程数量 server: tomcat: max-threads: 500

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdfys.html