最近遇到zuul上面的调优,记录下
参数调优
zuul网关的参数调优,有以下几个方面:容器、zuul、hystrix、ribbon、feign等,下面一一说明。
容器(tomcat)
以tomcat为例,调整max-threads、min-spare-threads、max-connections、max-http-header-size。具体值可自行根据压力测试结果,逐步调整。
zuul
调整host相关参数,max-per-route-connections、max-total-connections、connect-timeout-millis、socket-timeout-millis、connection-request-timeout-millis、time-to-live。如果需要改变时间单位,可调整time-unit参数。
调整hystrix相关参数
zuul中hystrix默认隔离策略为SEMAPHORE。如hystrix隔离策略使用线程池,需要调整ribbon-isolation-strategy参数为THREAD。如果为信号量,则为SEMAPHORE。如隔离策略为THREAD,则需要配置hystrix相关参数(见下面章节)。如隔离策略为SEMAPHORE,可通过调整zuul.semaphore.max-semaphores实现。
hystrix
默认隔离策略为THREAD。通过参数hystrix.command.default.execution.isolation.strategy调整。其它详细配置,可以参见HystrixCommandProperties。
THREAD隔离策略下,需优化coreSize、maximumSize、maxQueueSize,具体值可通过压力测试结果,逐步调整。
另外,需要优化timeoutInMilliseconds值。
ribbon
需优化MaxConnectionsPerHost、MaxTotalConnections、ConnectTimeout、ReadTimeout、MaxAutoRetries、MaxAutoRetriesNextServer。注意,其中的ConnectTimeout、ReadTimeout、MaxAutoRetries、MaxAutoRetriesNextServer事关hystrix.timeoutInMilliseconds计算,具体参见文章Hystrix超时时间小于ribbon超时时间报错中的介绍。详细配置,可参见DefaultClientConfigImpl、IClientConfig、IClientConfigKey。
feign
首先需要优化feign客户端配置中的connectTimeout、readTimeout。详细配置参见FeignClientConfiguration。
如果需要单独为某服务设置,可将服务名替换掉default即可。
关于feign.client实现方式,可选择okhttp。但是,无论选择哪种实现方式,均需优化connection-timeout、max-connections、max-connections-per-route。以okhttp为例:
最终配置
以本系列工程为例,根据压力SOAPUI 60s 并发压力测试结果,调整后的参数如下,笔者尝试的结果是:60s 10000线程,8G内存,单台示例,可无压力。
相关推荐
springcloud zuul网关服务,可直接运行,实现了网关的过滤,以及多重认证功能
springcloud zuul 网关开发实践,模拟了在Spring Cloud微服务系统中,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服的实现过程。
第六章 SpringCloud Zuul网关.pdf
主要介绍了SpringCloud Zuul网关功能实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
springcloud zuul gateway 服务网关 http://knight-black-bob.iteye.com/blog/2357683
06Spring Cloud Zuul:API网关服务1
《深入理解Spring Cloud与微服务构建》学习笔记(十六)~路由网关Spring Cloud Zuul
《深入理解Spring Cloud与微服务构建》学习笔记(十七)~路由网关Spring Cloud Zuul~负载均衡
使用SpringCloud Zuul Proxy构建API网关.docx
《深入理解Spring Cloud与微服务构建》学习笔记(十八)~路由网关Spring Cloud Zuul~熔断器
讲到了Spring Cloud五大组件 还讲到,Spring Cloud在阿里云中的使用(springcloud...Spring Cloud Zuul 统一配置中心的架构图 Spring Cloud Config工作流程简图 全链路监控应该的功能 Spring cloud Sleth与PinPoint集成
Zuul 网关是具体核心业务服务的看门神,相比具体实现业务的系统服务来说它是一个边缘服务,主要提供动态路由,监控,弹性,安全性等功能。在分布式的微服务系统中,系统被拆为了多套系统,通过 Zuul 网关来对用户的...
spring cloud框架下的单点登录sso技术 oauth2实现的认证 授权 以及zuul作为网关路由 可以参考学习使用
SpringCloud中集成Zuul网关。 添加相关依赖,编写路由地址,添加过滤器可以在过滤器中对请求做其他操作 如验证是否登录、解密请求中的数据等
服务网关是分布式架构中不可缺少的组成部分,是外部网络和内部服务之间的屏障。这篇文章主要介绍了SpringCloud实战之Zuul网关服务。一起跟随小编过来看看吧
spring-cloud-zuul(包含注册中心、服务生产者、服务消费者、zuul网关路由).zip 暂时只有zuul反向代理
SpringCloud API网关zuul ,路由规则写在配置文件中。为了便于修改,把配置文件放到配置文件中心。使用springcloud config .后期可以使用携程的阿波罗 可视化操作界面 并且是中文的。
SpringCloud(zuul路由网关)
19.Spring Cloud中的API网关服务Zuul 20.Spring Cloud Zuul中路由配置细节 21.Spring Cloud Zuul中异常处理细节 22.分布式配置中心Spring Cloud Config初窥 23.Spring Cloud Config服务端配置细节(一) 24....
第九章 SpringCloud Oauth2认证中心-Zuul网关上添加认证.pdf