Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.24.2
-
None
-
Unknown
Description
What do you think about adding a consumerTag to the Camel RabbitMQ endpoint ?
The consumerTag allows you to specify a client-generated consumer tag to establish context when invoking channel.basicConsume(). This function is useful from an operational point of view to specialize the names of consumers in the RabbitMQ management console. See attachments.
String basicConsume(String queue, boolean autoAck, String consumerTag, boolean noLocal, boolean exclusive, Map<String, Object> arguments, Consumer callback) throws IOException;
The evolution to realize is simple.
1/ Add the consumerTag in the RabbitMQEndpoint class:
@UriParam (label = "consumer") private String consumerTag = "";
2/ Use the consumerTag in the RabbitConsumer class:
@Override protected void doStart () throws Exception { if (channel == null) { throw new IOException ("The RabbitMQ channel is not open"); } tag = channel.basicConsume (consumer.getEndpoint(). getQueue(), consumer.getEndpoint().isAutoAck(), consumer.getEndpoint().getConsumerTag(), false, consumer.getEndpoint().isExclusiveConsumer(), null, this); }
NB : This functionnality exists on Spring AMQP through the org.springframework.amqp.support.ConsumerTagStrategy interface.