나의 주니어 개발 일기/RabbitMQ
RABBITMQ 에서 Queue에서 Consume 하고 있는 대상을 명확히 식별하고 싶을때
추억을 백앤드하자
2024. 3. 18. 09:27
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