본문으로 바로가기
728x90
반응형
SMALL

Consumer Tag를 이용해보자.

 

RabbitMQ 모니터링 사이트에서 Queue 정보를 확인 했을 때 누가 Consume 하고있는지 Consumer tag 로 확인이 가능하다.

그러나  Consumer tag 값은 mq가 랜덤으로 생성한 값이기 때문에 명확한 식별이 안됀다.

 

Consumer Tag를 이용해 명확한 식별자를 만들어주자.

 

1. Consumer 단에서 mq factory 생성시 `setConsumerTagStrategy` 를 사용하여 내가 원하는 식별자 이름을 주입하자.

@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(
        SimpleRabbitListenerContainerFactoryConfigurer configurer,
        ConnectionFactory connectionFactory) {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
    configurer.configure(factory, connectionFactory);
    factory.setConsumerTagStrategy(q -> "myConsumerFor." + q);
    return factory;
}

@RabbitListener(queues = "foo")
public void listen(String in) {
    System.out.println(in);
}

2. 또는 수동으로 Consume하는 basicConsume메서드를 사용하고, 내부 인자로 식별자 이름을 넣어주자.

channel.basicConsume(queueName, autoAck, "specific.tag."+System.currentTimeMillis(), deliverCallback);

 

 

728x90
반응형
LIST