Replies: 3 comments
-
Routing is performed in the channel process: Therefore there is no way of measuring anything about the exchange directly, because exchanges are just lookups (there is no exchange process). However, concurrent publishers will put additional load on the ETS tables used for routing. Since 3.11, there is a different (simpler/faster) code path) for direct exchange: #4606 but to be honest I don't see how the exchange type could affect the publisher confirm. It seems more likely to be related with the queue/channel being overloaded.
Thanks, |
Beta Was this translation helpful? Give feedback.
-
Since default exchange uses a separate code path, it can be missing some things that all other exchanges go through via exchange type modules. But that's just a guess, we need an executable way to reproduce. |
Beta Was this translation helpful? Give feedback.
-
@motmot80 by |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello everyone,
during high load scenarios in our RMQ cluster we are seeing missing publish confirms on messages published (queue-routing by routing key/subject) to the default exchange.
At the same time other exchanges with less messages on the same cluster are not showing the problem.
The producing apps are equally distributed on the cluster nodes.
I know that there's a capacity limit for queues (1 CPU max per queue) but is the default exchange limited, too.
Any idea how to measure if an exchange has reached a capacity limit?
Which erlang process has the exchange logic / compute time for answering the publish (inter-node publish-confirm)?
Is it the queue itself?
Thanks in advance.
Best regards
Thomas
Beta Was this translation helpful? Give feedback.
All reactions