Как отправить сообщение всем слушателям RabbitMQ, Spring boot
Отправка:
@Service
public class ProducerImp implements Producer {
@Autowired
private AmqpTemplate amqpTemplate;
@Value("${jsa.rabbitmq.exchange}")
private String exchange;
@Value("${jsa.rabbitmq.routingkey}")
private String routingKey;
@Override
public void produceMsg(MessageDTO msg) {
amqpTemplate.convertAndSend(exchange, routingKey, msg);
System.out.println("Send msg = " + msg);
}
}
слушатель (Остальные такие же):
@Component
public class SubscribeServiceImpl {
@RabbitListener(queues="jsa.queue")
public void recievedMessage(MessageDTO msg) {
System.out.println("Recieved Message: " + msg.getMessage());
}
}
Проблема в том что сообщение приходит только одному из слушателей. Как сделать так чтоб приходила всем?
Ответы (1 шт):
Автор решения: motpfofs
→ Ссылка
Если все слушатели подписаны на одну и ту же очередь, то сообщение обработает только один слушатель, который первым получил сообщение. Вы можете создать несколько очередей (для каждого из слушателей) и посылать сообщение во все очереди сразу привязав их к одному Exchange и RoutingKey. Подробней тут