Vertx 线程阻塞警告
Vertx thread blocked warnings
我是 运行 vert.x 服务器上的 vert.x 应用程序。它在端口 3000 上有一个 HTTPServer 运行。应用程序工作正常,但有时我会看到以下警告:
Dec 08, 2017 1:23:43 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 138013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:44 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 139014 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:45 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 140013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:46 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 141013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:47 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 142013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:48 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 143013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:49 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 144013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:50 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 145013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我不明白是什么导致出现这些警告。在发出警告时,服务器处于空闲状态,应用程序的流量为 0。另外,我是 运行 一个使用 vertx periodic 的调度程序,它每 15 秒查询一次 mongo。
vertx.setPeriodic(15000, r -> someService.check()); // Every 15 seconds
您是否正在使用 vertx.executeBlocking() 执行阻塞 api 调用?在我看来,您可能在 someService.check() 或其他任何地方
的某个地方有阻塞 API 调用
似乎没有足够的熵(服务器空闲)来提供 PRNG。因此,SecureRandom.generateSeed
方法不会快速返回,而是会阻塞,直到它获得足够的数据。
根据您的硬件,您可以使用 rng-tools
来加快该过程。
我是 运行 vert.x 服务器上的 vert.x 应用程序。它在端口 3000 上有一个 HTTPServer 运行。应用程序工作正常,但有时我会看到以下警告:
Dec 08, 2017 1:23:43 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 138013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:44 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 139014 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:45 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 140013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:46 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 141013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:47 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 142013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:48 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 143013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:49 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 144013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Dec 08, 2017 1:23:50 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 145013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
at sun.security.provider.NativePRNG$RandomIO.access0(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
at io.vertx.ext.auth.PRNG.lambda$null[=10=](PRNG.java:78)
at io.vertx.ext.auth.PRNG$$Lambda4/767088095.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking(ContextImpl.java:271)
at io.vertx.core.impl.ContextImpl$$Lambda6/1202956360.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我不明白是什么导致出现这些警告。在发出警告时,服务器处于空闲状态,应用程序的流量为 0。另外,我是 运行 一个使用 vertx periodic 的调度程序,它每 15 秒查询一次 mongo。
vertx.setPeriodic(15000, r -> someService.check()); // Every 15 seconds
您是否正在使用 vertx.executeBlocking() 执行阻塞 api 调用?在我看来,您可能在 someService.check() 或其他任何地方
的某个地方有阻塞 API 调用似乎没有足够的熵(服务器空闲)来提供 PRNG。因此,SecureRandom.generateSeed
方法不会快速返回,而是会阻塞,直到它获得足够的数据。
根据您的硬件,您可以使用 rng-tools
来加快该过程。