测试并发,经常会出现服务无法调用,nacos连接超时

Blade 未结 1 1225
xiaose
xiaose 剑童 2021-08-04 09:28

一、该问题的重现步骤是什么?

使用jmeter对接口进行性能测试,200并发日志出现nacos 超时。

错误日志:

2021-08-04 09:20:07.074 ERROR 1 --- [48-38aaaab6298b] c.a.n.c.config.http.ServerHttpAgent      : [NACOS SocketTimeoutException httpPost] currentServerAddr: http://10.10.0.201:8848, err : Read timed out
2021-08-04 09:20:07.074 ERROR 1 --- [48-38aaaab6298b] c.a.n.c.config.http.ServerHttpAgent      : no available server, currentServerAddr : http://10.10.0.201:8848
2021-08-04 09:20:07.075 ERROR 1 --- [48-38aaaab6298b] c.a.n.client.config.impl.ClientWorker    : [fixed-10.10.0.201_8848-65ca2a96-9675-49bf-bc48-38aaaab6298b] [check-update] get changed dataId exception

java.net.ConnectException: no available server, currentServerAddr : http://10.10.0.201:8848

	at com.alibaba.nacos.client.config.http.ServerHttpAgent.httpPost(ServerHttpAgent.java:190) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.http.MetricsHttpAgent.httpPost(MetricsHttpAgent.java:68) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker.checkUpdateConfigStr(ClientWorker.java:441) [nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker.checkUpdateDataIds(ClientWorker.java:408) [nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker$LongPollingRunnable.run(ClientWorker.java:596) [nacos-client-1.4.1.jar!/:na]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_202]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_202]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_202]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_202]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]

	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]

2021-08-04 09:20:07.075 ERROR 1 --- [48-38aaaab6298b] c.a.n.client.config.impl.ClientWorker    : longPolling error :

java.net.ConnectException: no available server, currentServerAddr : http://10.10.0.201:8848

	at com.alibaba.nacos.client.config.http.ServerHttpAgent.httpPost(ServerHttpAgent.java:190) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.http.MetricsHttpAgent.httpPost(MetricsHttpAgent.java:68) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker.checkUpdateConfigStr(ClientWorker.java:441) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker.checkUpdateDataIds(ClientWorker.java:408) ~[nacos-client-1.4.1.jar!/:na]

	at com.alibaba.nacos.client.config.impl.ClientWorker$LongPollingRunnable.run(ClientWorker.java:596) ~[nacos-client-1.4.1.jar!/:na]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_202]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_202]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_202]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_202]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]

	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]


二、你期待的结果是什么?实际看到的又是什么?

解决并发连接服务问题。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 2021-08-04 12:21

    主要得看你设置的线程数和每秒启动的线程来看,不同的配置有不同的结果。

    每个服务都是有一个极限的,你超过之后性能自然就差了. 另外如果是token接口,因为涉及到多层feign调用,性能会稍差一些,你需要多启动几个服务保证性能。

    你可以看下我本地用单服务测试的接口的报告

    image.png


    image.pngimage.png


    0 讨论(0)
提交回复