RabbitMQ transport allows you to send or receive AMQP messages by calling an AMQP broker (RabbitMQ) directly. In order to improve the performance of the RabbitMQ transport you can do following.
Set queue and exchange declaration parameters to false
Setting rabbitmq.queue.autodeclare
and rabbitmq.exchange.autodeclare
parameters in the publish url to false
can improve the RabbitMQ transport performance.
When these parameters are set to false
RabbitMQ does not try to create queues or exchanges if queues or exchanges are not present. However, you should set these parameters if and only if queues and exchanges are declared prior on the broker.
Increase the connection pool size
You can increase the connection pool size to improve the performance of the RabbitMQ sender and listener. The default connection pool size is 20. To change this, specify a required value for the following parameter in the RabbitMQ transport sender and listener configurations in the <EI_HOME>/conf/axis2/axis2.xml
file.
<parameter name="rabbitmq.connection.pool.size" locked="false">25</parameter>
Reuse the connection factory in the publisher
In the publisher url, set the connection factory name instead of the connection parameters as specified below in the rabbitmq.connection.factory
parameter . This reuses the connection factories and thereby improves performance.
<address uri="rabbitmq://?rabbitmq.connection.factory=RabbitMQConnectionFactory&rabbitmq.queue.name=queue1&rabbitmq.queue.routing.key=queue1&rabbitmq.replyto.name=replyqueue&rabbitmq.exchange.name=ex1&rabbitmq.queue.autodeclare=false&rabbitmq.exchange.autodeclare=false&rabbitmq.replyto.name=response_queue"/>