Я новичок в RabbitMq и AMQP, но у меня есть некоторый опыт работы с ActiveMQ и JMS. Я пытаюсь опубликовать сообщение в теме (тема как тема в JMS) и получить это сообщение от нескольких слушателей. Например, я публикую сообщение о том, что в системе появился новый пользователь, и один потребитель отправляет электронное письмо этому пользователю, а другой потребитель индексирует этого пользователя в elasticsearch. Таким образом, каждый потребитель должен прочитать сообщение, пока его нельзя будет удалить из темы.
Я пробовал использовать TopicExchange следующим образом:
@Bean
public TopicExchange profileExchange() {
return new TopicExchange(PROFILE_EXCHANGE, true, false);
}
@Bean
public Queue putProfileQueue() {
return new Queue(this.PUT_PROFILE_QUEUE);
}
@Bean
public Binding putProfileBinding() {
return BindingBuilder.bind(putProfileQueue()).to(profileExchange()).with(PUT_PROFILE_QUEUE);
}
И у меня есть два заявленных слушателя.
Но как только первый слушатель прочитает сообщение, оно удаляется из очереди, а второй слушатель не читает сообщение.
Я не уверен, что правильно понимаю различную конфигурацию AMQP и какую из них я должен использовать для имитации шаблона «тема», который я знал в JMS.