You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Reactor's RabbitMQ sendWithTypedPublishConfirms() always invokes the confirmSelect() method of the underlying channel which causes a blocking RPC call.
This is especially detrimental to performance when sending a small amount of messages per Publisher/Flux, as the channel is put into confirm mode even if it already was (when using a channel pool).
Following RabbitMQ's best practices, confirms should be enabled once per channel. In fact, there's no API to disable confirms once enabled on a channel.
Describe the solution you'd like
ChannelN should keep track if confirmSelect() was successfully enabled, and if so, future invocations of this method return a Confirm.SelectOk without making a RPC call.
I can contribute a PR if there's interest in this solution 🙂
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
In order to avoid unnecessary blocking RPC calls and conform to best
practices, the Channel now checks if it is already activated confirm
mode before sending a confirm.select RPC call.
If confirm mode is already activated, calling confirmSelect() again
returns immediately without sending an RPC call.
Closesrabbitmq#1056
In order to avoid unnecessary blocking RPC calls and conform to best
practices, the Channel now checks if it is already activated confirm
mode before sending a confirm.select RPC call.
If confirm mode is already activated, calling confirmSelect() again
returns immediately without sending an RPC call.
Closes#1056
(cherry picked from commit 7253c94)
Conflicts:
src/test/java/com/rabbitmq/client/test/ChannelNTest.java
Is your feature request related to a problem? Please describe.
Reactor's RabbitMQ
sendWithTypedPublishConfirms()
always invokes theconfirmSelect()
method of the underlying channel which causes a blocking RPC call.This is especially detrimental to performance when sending a small amount of messages per Publisher/Flux, as the channel is put into confirm mode even if it already was (when using a channel pool).
Following RabbitMQ's best practices, confirms should be enabled once per channel. In fact, there's no API to disable confirms once enabled on a channel.
Describe the solution you'd like
ChannelN
should keep track ifconfirmSelect()
was successfully enabled, and if so, future invocations of this method return aConfirm.SelectOk
without making a RPC call.I can contribute a PR if there's interest in this solution 🙂
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: