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]
