错误信息 [plan-upms] [2020-05-11 13:32:18] 05-11 13:32:18.000 ERROR [com.netflix.discovery.TimedSupervisorTask] - task supervisor timed out [plan-upms] [2020-05-11 13:32:18] java.util.concurrent.TimeoutException: null [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.FutureTask.get(FutureTask.java:205) [plan-upms] [2020-05-11 13:32:18] at com.netflix.discovery.TimedSupervisorTask.run(TimedSupervisorTask.java:63) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [plan-upms] [2020-05-11 13:32:18] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [plan-upms] [2020-05-11 13:32:18] at java.lang.Thread.run(Thread.java:748) 原因分析 项目启动初始化时,会启动两个定时任务,一个是向eureka注册,即心跳的线程,另一个是从eureka获取服务注册列表,即刷新注册列表缓存的线程,上述两个线程都是每30s执行一次,默认超时时间都为30s,所以当30s未执行完该任务是,便会抛出Timeout的异常。发送心跳的任务比较简单,一般不会超时。而获取注册列表的任务,耗时较久。由于注册中心是所有服务通信的基础,所以部署在多个服务器的应用在通信时可能会比较耗时,往往会发生超时。 处理步骤 将该后段项目的 bootstrap.yml 文件中的 client.registry-fetch-interval-seconds 调大,建议调为 30。 ———————————————— 版权声明:本文为CSDN博主「huayang183」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_18671415/java/article/details/106052451 |