2016-04-13 4 views
0

Когда мы используем обмен сообщениями rabbitMQ, мы можем отправить сообщение повсюду. И наш проект очень велик, когда я получаю сообщение, и мы обнаружили, что в сообщении есть проблема, и мы хотим изменить сообщение там, где оно было отправлено. Но вряд ли можно найти, куда было отправлено сообщение.Как узнать, откуда отправлено сообщение в rabbitMQ?

Есть ли способ или командный инструмент в rabbitMQ, чтобы узнать, откуда отправлено это сообщение.

ответ

0

есть мало информации, что вы можете взять с использованием envelop как exchange, delivery_tag, routing_key:

Consumer consumer_a = 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"); 
       long delivery_tag = envelope.getDeliveryTag(); 
       String exchange_from = envelope.getExchange(); 
       String routing_key = envelope.getRoutingKey(); 

      } 
     }; 

, если вам нужно больше информации вы можете использовать headers добавить пользовательскую информацию:

var properties = new BasicProperties(); 
    properties.Headers = new Dictionary<string, object>(); 
    properties.Headers.Add("mysender_user", "my_server"); 
    properties.Headers.Add("my_custom_info", "my_info"); 

    channel.BasicPublish(ExchangeName, "", properties, message); 
Смежные вопросы