Потребитель Rabbitmq для персистентного сообщения
Привет,
Я объявил очередь со следующими параметрами.
channel.exchangeDeclare(EXCHANGE_NAME, ExchangeType.DIRECT.getExchangeName(), true); Map<String, Object> args = new HashMap<String, Object>(); args.put("x-queue-mode", "lazy"); // First Queue channel.queueDeclare(QUEUE_NAME_1, false, true, false, args); channel.queueBind(QUEUE_NAME_1, EXCHANGE_NAME, ROUTING_KEY_1);
При отправке данных :
channel.basicPublish(DirectExchange.EXCHANGE_NAME, DirectExchange.ROUTING_KEY_1, MessageProperties.PERSISTENT_TEXT_PLAIN, MESSAGE_1.getBytes());
Его правильное хранение на локальном диске, а также его удержание после перезагрузки сервера также.
Но когда я запускаю своего потребителя, он не потребляет данные, доступные внутри очереди настройки.
Следующий код я использую для потребителя:
Connection conn = RabbitMQConnection.getConnection(); if (conn != null) { Channel channel = conn.createChannel(); // Consumer reading from queue 1 Consumer consumer1 = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" Message Received Queue 1 '" + message + "'"); } }; channel.basicConsume(DirectExchange.QUEUE_NAME_1, false, consumer1);
Пожалуйста, помогите мне в этом, чтобы решить эту проблему.
Спасибо,
Что я уже пробовал:
Я пробовал с вышеуказанным потребителем. Но это не работает.