chibenwa edited a comment on pull request #508:
URL: https://github.com/apache/james-project/pull/508#issuecomment-869131638


   CPU utilisation related to RabbitMQ as expected increased (1.30 % -> 2.6%) 
however latencies went from 67ms to 90+ ms at ~800 req/s.
   
   RPC related to `Channel::confirmSelect` done repeatedly are rather 
expensive, and I notice some active creation of channels.
   
   As such, I feel unconfident with the publish / confirm part of the work and 
would split it to another pull request...
   
   https://www.rabbitmq.com/tutorials/tutorial-seven-java.html
   
   ```
   Confirms should be enabled just once, not for every message published.
   ```
   
   Not the case given my implementation.
   
   For now I see several solutions:
   
     - rely on a sink to pass all messages as part of a single Flux. Thus init 
is done once. The done side is that the result is asynchronous to the caller 
(error handling would not be propagated)
     - enable publish confirms globally in ReactorRabbitMQChannelPool and 
re-implement send operation to skip confirmSelect activation...
     - Wrap channel in a super-class that activated `confirmSelect` only once 
(AtomicBoolean?)
     - ...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to