[ 
https://issues.apache.org/jira/browse/CAMEL-15874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp updated CAMEL-15874:
----------------------------
    Priority: Major  (was: Minor)

> Every endpoint using RabbitMQ creates a new connection instead of using only 
> one connection
> -------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-15874
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15874
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-rabbitmq
>    Affects Versions: 3.4.4
>         Environment: OS Client: Linux 18.04
> OS Server: Linux 18.04
> Java: OpenJDK 11
> Camel: 3.4.4
> SpringBoot: 2.2.0
>            Reporter: Philipp
>            Priority: Major
>         Attachments: 2020-11-20 16_56_05-RabbitMQ Management.png, 2020-11-20 
> 16_57_16-RabbitMQ Management.png
>
>
> Consuming AMQP messages from RabbitMQ like the following results in multiple 
> physical connections being set up and used. Instead of using one single 
> connection and multiple channels per connection, as RabbitMQ 
> [suggests|https://www.rabbitmq.com/channels.html].
> {code:xml}
> <route id="fooRoute">
>     <!-- ... -->
>     <from uri="rabbitmq:?queue=foo.queue&amp;skipQueueBind=true"/>
>     <!-- ... -->
> </route>
> <route id="barRoute">
>     <!-- ... -->
>     <from uri="rabbitmq:?queue=bar.queue&amp;skipQueueBind=true"/>
>     <!-- ... -->
> </route>
> {code}
> Also using the following configuration ...
> {code:yaml}
> camel:
>   component:
>     rabbitmq:
>       autoDetectConnectionFactory: true
>       skip-exchange-declare: true
>       connection-factory: cachedConnectionFactory
> {code}
> {code:java}
> @Configuration
> public class Config{
>     private final 
> org.springframework.amqp.rabbit.connection.CachingConnectionFactory 
> rabbitConnectionFactory;
>     // ...
>     @Bean
>     com.rabbitmq.client.ConnectionFactory cachedConnectionFactory() {
>         return rabbitConnectionFactory.getRabbitConnectionFactory();
>     }
> }
> {code}
> ... results in the following log output:
> {code}
> 2020-11-20 16:35:13.854 DEBUG 17625 --- [           main] 
> o.a.c.c.rabbitmq.RabbitMQConsumer        : Using executor 
> org.apache.camel.util.concurrent.RejectableThreadPoolExecutor@4cd6f08b[Running,
>  pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 
> 0][rabbitmq://?queue=foo.queue&skipQueueBind=true]
> 2020-11-20 16:35:13.881 DEBUG 17625 --- [           main] 
> o.a.c.c.rabbitmq.RabbitMQConsumer        : Created connection: 
> amqp://[email protected]:5672/
> 2020-11-20 16:35:13.892 DEBUG 17625 --- [           main] 
> o.a.c.component.rabbitmq.RabbitConsumer  : Created channel: 
> AMQChannel(amqp://[email protected]:5672/,1)
> 2020-11-20 16:35:13.903  INFO 17625 --- [           main] 
> o.a.c.i.e.InternalRouteStartupManager    : Route: foo_distributorRoute 
> started and consuming from: rabbitmq://
> ...
> 2020-11-20 16:35:13.905 DEBUG 17625 --- [           main] 
> o.a.c.c.rabbitmq.RabbitMQConsumer        : Using executor 
> org.apache.camel.util.concurrent.RejectableThreadPoolExecutor@58835bba[Running,
>  pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 
> 0][rabbitmq://?queue=bar.queue&skipQueueBind=true]
> 2020-11-20 16:35:13.914 DEBUG 17625 --- [           main] 
> o.a.c.c.rabbitmq.RabbitMQConsumer        : Created connection: 
> amqp://[email protected]:5672/
> 2020-11-20 16:35:13.918 DEBUG 17625 --- [           main] 
> o.a.c.component.rabbitmq.RabbitConsumer  : Created channel: 
> AMQChannel(amqp://[email protected]:5672/,1)
> 2020-11-20 16:35:13.925  INFO 17625 --- [           main] 
> o.a.c.i.e.InternalRouteStartupManager    : Route: bar_distributorRoute 
> started and consuming from: rabbitmq://
> {code}
> See the attached screenshots from the RabbitMQ management dashboard.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to