【发布时间】:2021-11-25 00:31:13
【问题描述】:
我们的所有与 ActiveMQ 通信的 Mule 4.3 实例之间的响应时间都非常长,由于这些问题,我们的团队在 Mule JVM 中安装了 APM (AppDynamics) 代理来调试手头的问题。
我从我们的 APM 中得出的最有趣的事情是下面可见的调用图(每个调用的大部分时间也花在与 ActiveMQ 交互上):
Call graph from /api/transaction_1
On tier: TIER-01
On node: node-001.net
Start time: 10/04/21 4:24:39 PM
java.lang.Thread:run:748 (method time = 0 ms, total time = 28049 ms)
reactor.core.scheduler.SchedulerTask:call:27 (method time = 0 ms, total time = 28049 ms)
reactor.core.scheduler.SchedulerTask:call:50 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxSubscribeOnValue$ScheduledScalar:run:178 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber:onNext:345 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber:onNext:180 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.MonoNext$NextSubscriber:onNext:76 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxFlatMap$FlatMapInner:onNext:974 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxFlatMap$FlatMapMain:tryEmit:532 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner:onNext:242 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxMap$MapConditionalSubscriber:onNext:213 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber:onNext:345 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber:onNext:180 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 28049 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:482 (method time = 1884 ms, total time = 28049 ms)
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 0 ms)
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:next:718 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:drain:793 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber:onNext:121 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:482 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:next:718 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:drain:793 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber:onNext:121 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber:onNext:180 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber:onNext:180 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber:onNext:180 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber:onNext:846 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMap$MapConditionalSubscriber:onNext:213 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.LambdaSubscriber:onNext:130 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:next:718 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:drain:793 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner:onNext:242 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMap$MapSubscriber:onNext:114 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner:onNext:242 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber:onNext:121 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber:onNext:127 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:496 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber:onNext:287 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:482 (method time = 0 ms, total time = 26165 ms)
Spring Bean - _mulePolicyManager:lambda$static$0:84 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:next:718 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:drain:793 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:496 (method time = 0 ms, total time = 26165 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber:onNext:482 (method time = 0 ms, total time = 26165 ms)
net.jodah.failsafe.FailsafeExecutor:getStageAsync:178 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.FailsafeExecutor:callAsync:346 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.AsyncExecution:executeAsync:174 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.Functions:lambda$makeAsync$2:79 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.Functions:lambda$null$1:69 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.internal.executor.RetryPolicyExecutor:lambda$supplyAsync$1:133 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.internal.executor.RetryPolicyExecutor$1:call:101 (method time = 0 ms, total time = 26148 ms)
net.jodah.failsafe.Functions:lambda$promiseOfStage$8:193 (method time = 26148 ms, total time = 26148 ms)
JMS(28030ms): acme.corp.error.topic
reactor.core.publisher.FluxCreate$SerializedSink:next:153 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:next:718 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxCreate$BufferAsyncSink:drain:793 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxContextStart$ContextStartSubscriber:onNext:103 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber:onNext:204 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner:onNext:242 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxMap$MapSubscriber:onNext:114 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner:onNext:242 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxPublishOn$PublishOnConditionalSubscriber:onNext:704 (method time = 0 ms, total time = 17 ms)
reactor.core.publisher.FluxPublishOn$PublishOnConditionalSubscriber:trySchedule:759 (method time = 0 ms, total time = 17 ms)
reactor.core.scheduler.ExecutorServiceWorker:schedule:43 (method time = 0 ms, total time = 17 ms)
reactor.core.scheduler.Schedulers:workerSchedule:904 (method time = 17 ms, total time = 17 ms)
undefined(17ms): Asynchronous activity identified
我们看到很多我们不熟悉的“reactor.core”调用,因为它们是由 Mule 内部执行的,这一事实让我们很难理解 Mule 真正在做什么。
是否有人知道发生了什么,也许它可以让我们了解 Mule 和 ActiveMQ 之间发生了什么?或许更好地理解所有这一切可以帮助我们找到为什么反应如此缓慢的答案。
【问题讨论】:
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: activemq project-reactor mule4 appdynamics