spring cloud zuul的性能优化

阅读数:223 评论数:0

跳转到新版页面

分类

python/Java

正文

Tomcat

Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能有很大关系的。Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理。Tomcat默认配置的最大请求数是150,也就是说同时支持150个并发,并发越大,GC的负担也越大。

Windows每个进程的线程数不能超过2000,Linux每个进程中的线程数不允许超过1000,在Java中每开启一个线程需要耗用1MB的JVM内存空间用于线程栈之用。

所以我们修改tomcat(内嵌)的默认配置,如下:

server:
  tomcat:
    accept-count: 1000 
    max-threads: 1000
    max-connections: 2000

我们知道http请求底层实际是socket连接,只是每次请求完成之后,socket会关闭,所以才说http是短连接。而Max-connections就是与tomcat建立的最大socket连接数。

max-threads是tomcat工作线程池最大线程数。

acceptCount是当tomcat线程数达到最大时,接受排队的请求个数。

一般的服务器操作都包括两个方面:计算(主要消耗cpu)、等待(io、数据库等)

第一种极端情况,如果我们的操作是纯粹的计算,那么系统响应的主要限制就是cpu的运算能力,此时max-threads应该尽量设的小,降低同一时间内争抢cpu的线程个数。

另一种极端情况,如查我们的操作纯粹是IO或者数据库,那么响应时间的主要限制就变为等待外部资源,此时max-threads应该尽量设置的大,这样才能提高同时处理请求的个数,另外还要关注tomcat的内存调置和linux的open file限制 。

zuul

zuul内部路由可以理解为使用一个线程池去发送路由请求,所以我们也需要扩大这个线程池的容量。

zuul:
  host:
    max-per-route-connections: 1000
    max-total-connections: 1000

监控工具

为了确保上述配置真正起作用,我们使用Java VisualVM或jconsol这个工具监控这几台服务器上部署的tomcat的线程以及内存使用情况。

启动脚本上加上如下参数,之后通过工具连接2099端口即可监控。

Dcom.sun.management.jmxremote.port=2099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.19.52.8

 




相关推荐

ZuulProxyAutoConfiguration 首先我们看一下zuul的配置类ZuulProxyAutoConfiguration, 这个类有一项工作是初始化Zuul默认

使用ab工具对spring cloud的zuul进行压力测试,我的网关只有验证token的逻辑,如果token不存在返回一个提示。但是测试时发现qps(这里也可以理解为tps)只有400左右。但

Eureka Server在运行期间会去统计心跳失败比例在15分钟之内是否低于85%,如果低于85

mvn依赖 <dependency> <groupId

什么是jwt (json web token)jwt是一生中用来在网络上声明某种身份的令牌(TOKEN),它的特点是紧凑且自包含并且基于JSON,通过一些常用的算法对包含的主体

Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图表化界面。 修改service-hi 1、在pom工程文件引入相应的依赖</

简介 Spring cloud Sleuth主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持zipkin,你只需要在pom文件中引入相应的依赖即可。 1、

简介 在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程git仓库中,在该组

spring cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、ngnix),再到达服务网关(zuul集群),然后再到具体的服务。服务统一注册到高可用的服

一、JAVA项目中网络接口调用工具 1、HttpClient 它是Apache Jakarta Common下的子项目,用来提供高效、最新的、功能丰富的支持Http协议的客户端编程工具包。 HttpC