Netty 春云网关-拦阻猎犬:拦阻呼叫!太阳杂项不安全#公园
在SpringCloudGateway应用程序中,当执行PST时,始终观察到高CPU使用率。因此,添加了“BlockHound”作为依赖项,并在启动类中调用了“BlockHound.install();”。可以在日志文件中看到下面的内容。你能告诉我可能是什么问题吗-Netty 春云网关-拦阻猎犬:拦阻呼叫!太阳杂项不安全#公园,netty,spring-webflux,project-reactor,spring-cloud-gateway,Netty,Spring Webflux,Project Reactor,Spring Cloud Gateway,在SpringCloudGateway应用程序中,当执行PST时,始终观察到高CPU使用率。因此,添加了“BlockHound”作为依赖项,并在启动类中调用了“BlockHound.install();”。可以在日志文件中看到下面的内容。你能告诉我可能是什么问题吗- [2020-08-19 06:00:40,513] [a3a515474c55dfd9] [163167] [reactor-http-epoll-2] [ERROR] [o.s.b.a.w.r.e.AbstractErrorWeb
[2020-08-19 06:00:40,513] [a3a515474c55dfd9] [163167] [reactor-http-epoll-2] [ERROR] [o.s.b.a.w.r.e.AbstractErrorWebExceptionHandler] - [1cca0fbe-26272] 500 Server Err
or for HTTP POST "/lmp/data/msg"
reactor.blockhound.BlockingOperationError: Blocking call! sun.misc.Unsafe#park
at sun.misc.Unsafe.park(Unsafe.java)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.cloud.sleuth.instrument.web.TraceWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ HTTP POST "/lmp/data/msg" [ExceptionHandlingWebHandler]
Stack trace:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at java.util.concurrent.PriorityBlockingQueue.offer(PriorityBlockingQueue.java:481)
at java.util.concurrent.PriorityBlockingQueue.add(PriorityBlockingQueue.java:463)
at reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.pick(BoundedElasticScheduler.java:398)
at reactor.core.scheduler.BoundedElasticScheduler.createWorker(BoundedElasticScheduler.java:319)
at reactor.core.scheduler.Schedulers$CachedScheduler.createWorker(Schedulers.java:1090)
at reactor.core.publisher.MonoSubscribeOn.subscribeOrReturn(MonoSubscribeOn.java:48)
at reactor.core.publisher.Mono.subscribe(Mono.java:4198)
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75)
at org.springframework.cloud.sleuth.instrument.reactor.ScopePassingSpanSubscriber.onComplete(ScopePassingSpanSubscriber.java:104)
at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96)
at org.springframework.cloud.sleuth.instrument.reactor.ScopePassingSpanSubscriber.onComplete(ScopePassingSpanSubscriber.java:104)
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:359)
下面是技术堆栈-
SpringCloudGateway-Hoxton.RELEASE弹簧靴-2.2.1.释放
OpenJDK1.8 其他依赖项包括
io.projectreactor.tools:blockhound:1.0.4.RELEASE
org.springframework.boot:spring-boot-starter-actuator
org.springframework.boot:spring-boot-starter-data-redis
org.springframework.cloud:spring-cloud-starter-sleuth
io.micrometer:micrometer-registry-prometheus:1.3.3
以下是RHEL规范
体系结构:x86_64CPU操作模式:32位、64位
CPU:4个
在线CPU列表:0-3
每个核心的线程数:1个
每个插座的芯:1个
插座:4个 下面是JVM参数 -Xms512m-Xmx1024m-XX:+UseConcMarkSweepGC-XX:+UseParNewGC-XX:+CmsParallerMarkedEnabled-XX:CmsiniatingOccinecyFraction=60-XX:+UseCmsiniatingOccinecyYonly-XX:+DisableExplicitingC-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+UseLogFileRotation-XX:NumberOfGCLogFiles=10-XX:GCLogFileSize=10240K-Xloggc:/appl/xxx/xxx/logs/gc.log0814_0440-详细说明:gc-XX:+heapdumponautofmemoryerror-XX:HeapDumpPath=/appl/xxx/xxx/logs-XX:+PrintStringTableStatistics-Djava.security.egd=file:///dev/./urandom -Dreactor.netty.http.server.accessLogEnabled=true-Dio.netty.leakDetection.level=advanced 在删除“spring boot actuator*”依赖项之后,我现在开始了解以下内容-
reactor.blockhound.BlockingOperationError: Blocking call! java.lang.Object#wait
at java.lang.Object.wait(Object.java)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ org.springframework.web.cors.reactive.CorsWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.cloud.sleuth.instrument.web.TraceWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ HTTP POST "/lmp/data/msg" [ExceptionHandlingWebHandler]
Stack trace:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:502)
at java.net.InetAddress.checkLookupTable(InetAddress.java:1372)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1289)
at java.net.InetAddress.getAllByName0(InetAddress.java:1255)
at java.net.InetAddress.getAllByName(InetAddress.java:1171)
at java.net.InetAddress.getAllByName(InetAddress.java:1105)
at java.net.InetAddress.getByName(InetAddress.java:1055)
at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:156)
at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.SocketUtils.addressByName(SocketUtils.java:153)
at io.netty.resolver.DefaultNameResolver.doResolve(DefaultNameResolver.java:41)
at io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:61)
at io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:53)
at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:55)
at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:31)
at io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:106)
我们看不到您的源代码,但是在您的第一个堆栈跟踪中,它正在等待一些东西。我们看不到您的源代码,但是在您的第一个堆栈跟踪中,它正在等待一些东西