Closed grpubr closed 4 years ago
Thank you for your time.
Team RabbitMQ uses GitHub issues for specific actionable items engineers can work on. GitHub issues are not used for questions, investigations, root cause analysis, discussions of potential issues, etc (as defined by this team).
We get at least a dozen of questions through various venues every single day, often light on details. At that rate GitHub issues can very quickly turn into a something impossible to navigate and make sense of even for our team. Because GitHub is a tool our team uses heavily nearly every day, the signal/noise ratio of issues is something we care about a lot.
Please post this to rabbitmq-users.
Thank you.
There seems to be some confusion around what NO_ROUTE
means and how it may relate to consumers. Long story short: there is no connection. Publishers are entirely unaware of consumers in AMQP 0-9-1. A NO_ROUTE
means that a message published as mandatory could not be routed to any queues.
Delivery to consumers happens after routing and enqueueing by queue processes. There is no connection to the original publishing channel at that point. So the "delivered to consumers" part is very likely a red herring.
Your code example uses mandatory publishing. From Limitations in the delayed message exchange plugin's README:
Closely related to the above, the mandatory flag is not supported by this exchange: we cannot be sure that at the future publishing point in time.
Since publishing by this plugin is delayed, and potentially by minutes or hours, there is no guarantee that the original channel on which we must send a return is still around. Therefore there is no sensible way to support this flag. Exchanges used for delayed publishing often have no bindings of their own (why would they?), so mandatory publishing will always result in a return.
Hi,
I'm working with spring-boot-starter-amqp(2.1.3),which has dependcy with spring-amqp(2.1.4).I have found that even when a delayed message is already sent to consumer, the publisher-returns callback is called with argument( 312,NO_ROUTE).
my rabbitMQ server is a docker image with the version 3.8.3-management, below is my dockerfile
RabbitMQ plugins
RabbitMQ server logs seems no useful log even the log level is set to debug
client log
A code example or terminal transcript that can be used to reproduce
Full exception stack traces (a single line message is not enough!) no exception
rabbitmqctl report and rabbitmqctl environment output
see attachment file
Other relevant details about the environment and workload, e.g. a traffic capture rabbitmqctl_report.txt
rabbitmqctl_environment.txt
traffic .zip