Skip to content
Discussion options

You must be logged in to vote

To clarify: RabbitMQ channels will begin processing the basic.ack frame before basic.close, this is guaranteed.

What is not guaranteed is that the channel can finish the first step before it is shut down by the connection, as the application instructs it to do. It does not coordinate received but pending ack processing with either its connection or the target queue, and making it coordinate with either or both is guaranteed to result in a throughput hit and suboptimal CPU utilization for no gain for the absolute majority of users.

Use long lived channels, as the docs explicitly recommend, and you will avoid this problem.

Replies: 4 comments 6 replies

Comment options

You must be logged in to vote
3 replies
@michaelklishin
Comment options

Answer selected by michaelklishin
@grujicd
Comment options

@michaelklishin
Comment options

Comment options

You must be logged in to vote
1 reply
@grujicd
Comment options

Comment options

You must be logged in to vote
2 replies
@grujicd
Comment options

@kjnilsson
Comment options

Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants
Converted from issue

This discussion was converted from issue #10328 on January 11, 2024 21:22.