Как реализовать потребительскую часть RabbitMQ (получатель) внутри загрузочного API Spring - PullRequest
0 голосов
/ 21 февраля 2019

Я собираюсь отправить отправителя DATA toRabbitMq (отправитель сообщения) и получить ответственные данные от потребителя RabbitMq (получатель сообщения).часть производителя работает нормально. Теперь моя проблема заключается в том, как реализовать потребительскую часть (часть получателя) в стороне загрузочного API Spring.Ниже приведен мой весенний загрузочный API, и я написал ProducerAndConsumer один класс.

ProducerAndConsumer.class

@Component
public class ProducerAndConsumer {
    @Autowired
    private RabbitTemplate rabbitTemplate;



    //MessageProducer part (send part)
    public boolean sendMessage(String message) {
        rabbitTemplate.convertAndSend(RobbitMqConfig.ROUTING_KEY, message);
        System.out.println("Is listener returned ::: ==========="+rabbitTemplate.isReturnListener());
        return rabbitTemplate.isReturnListener();


    }
        //Consumer part (receiver part)
        @RabbitListener(queues = RobbitMqConfig.QUEUE_NAME1)
        public void receiveMessage ( final Message message){
            System.out.println("Received message====Receiver=====" + message.getPayload());

        }

}

API-часть

 @PostMapping(value = {"/sendFilesName"})
        public ResponseEntity<?> sendFilesName(@RequestBody SendFileNameRequest sendFileNameRequest, HttpServletRequest request) throws ParseException {
            System.out.println("FileNameArray="+sendFileNameRequest.getFileNameArray());

            if(sendFileNameRequest.getFileNameArray().size()!=0) {
                List<String> message = sendFileNameRequest.getFileNameArray();
                 **//see here i send my message array data**
                if(producerAndConsumer.sendMessage(message.toString())){
           **//here i want implement my receiver part how to?**
                return ResponseEntity.ok(new ApiResponse(true, "fileName List sent  successfully", "",true));

                }else {
                    return ResponseEntity.ok(new ApiResponse(false, "fileName List sent  Fails", "",true));


                }
            }else {
                return ResponseEntity.ok(new ApiResponse(false, "fileName List not present ", "",true));

            }

        }

1 Ответ

0 голосов
/ 21 февраля 2019

Алгоритм маршрутизации, стоящий за прямым обменом, прост - сообщение попадает в очереди, ключ привязки которых точно совпадает с ключом маршрутизации сообщения.

spring amqp

Примечание. Проверьте ключ маршрутизации и очереди, связанные с помощью консоли администратора rabbitmq, чтобы выяснить, что происходит, или поделитесь конфигурацией rabbitmq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...