-
Notifications
You must be signed in to change notification settings - Fork 626
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix RabbitMQ x-death header documentation #2688
Comments
I'm not fully sure what you find as a wrong recommendation. I don't see any sentence in that doc which says something like I think we just followed Dead Letter Exchanges docs to deal with expectations after DLX. Thanks |
Thanks @artembilan for the clarification. |
Apparently |
@ansd , Would you mind, please, confirm that
Apparently we don't deal (and don't talk) about its Thanks I probably won't mind to implement some new strategy for header different from |
Starting with RabbitMQ 3.13, the count parameter in x-death header is no longer incremented. This breaks SCSt applications that relied on this header and parameter to keep track of retry attempts. Note that spring-amqp/SCSt already sets another header x-exception-stacktrace with Java exception stacktrace that resulted in the message being dead lettered. We will need another similar header, for example, x-retry-attempt to carry the retry attempt (i.e., number of times the message is published to DLQ). Note that RabbitMQ is discouraging usage of x- prefixed headers, so both x-exception-stacktrace and x-retry-attempt should be renamed to something else |
I see. Would it be OK to have them as something like
|
Yes, the The only thing that changes in RabbitMQ 3.13 is that RabbitMQ (upon receiving) won't interpret anymore the So, if there is any code or documentation within Spring that causes messages being published to RabbitMQ to have the |
Yeah... Nothing to fix here. |
The Spring Cloud Stream RabbitMQ Binder Reference Guide recommends that the AMQP 0.9.1 client re-publishes a message with the
x-death
header it received from RabbitMQ in order to determine the number of times (count
) the message was received and re-published to RabbitMQ, see rabbitmq/rabbitmq-server#10709 (comment)We consider this an anti-pattern or even bug because AMQP 0.9.1 headers prefixed with
x-
includingx-death
"belong" to the broker and are not meant to be specially parsed and interpreted by the broker when received from an AMQP 0.9.1 client.Hence, as explained here, we recommend changing the documentation to instead use some custom non x-header to determine how often a message was re-published from the client to the broker.
Starting with RabbitMQ 4.0, the current documented pattern by Spring Cloud Stream RabbitMQ Binder Reference Guide will break.
The text was updated successfully, but these errors were encountered: