目录
1.背景
为了测试基于SpringCloud微服务引擎开发的应用的性能表现,通过性能测试工具不断加压,查看服务以及承载服务的PAAS平台的性能情况
2.环境
- SpringCloud: Greenwich.SR1
- SpringBoot: 2.1.2.RELEASE
- PAAS平台(公司自研)
- nGrinder-v3.5.5
3.测试步骤
1.nGrinder测试应用(consumer)提供的RESTful接口,该接口实际调用producer中的实现
2.按照用例设计的场景,逐渐增加并发用户数。如,1,10,50,100,1000等
当并发用户数增加到1000时,发现consumer中出现类似报错:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: nested exception is feign.RetryableException: connect timed out executing GET http://xxxx] with root cause
java.net.SocketTimeoutException: connect timed out
...
找度娘问了问,发现有类似报错时,有网友的修复方法如下:
在eureka的配置中,即应用配置的注册中心的配置文件中,增加如下几个参数:
- eureka.instance.ip-address # 改变的是注册的默认ip
- eureka.instance.metadataMap.zone # 改变的是注册的默认范围也就是域
- eureka.client.preferSameZoneEureka # 默认为false,作用为是否让默认域改变
- eureka.instance.prefer-ip-address # 默认为false,作用为是否让默认ip可改变
4.解决方法
在producer的配置文件application.yml中增加:
eureka:
instance:
prefer-ip-address: true
再次测试后,错误率下降许多,只是并没有彻底解决该报错信息的出现。
5.参考资料
https://www.cnblogs.com/zhznb/p/9689673.html
https://blog.csdn.net/bigtree_3721/article/details/101175258