2016-04-13 4 views
0

私たちがウサギを使っているときは、トピック交換、どこでもメッセージを送ることができます。私たちのプロジェクトは非常に大きく、メッセージを受け取ったときにメッセージに問題があると判断し、送信された場所でメッセージを修正したいと考えています。しかし、メッセージが送られた場所はほとんど見つけられません。rabbitMQのメッセージはどこから送信されますか?

rabbitMQには、メッセージの送信元を特定するためのメソッドまたはコマンドツールがありますか。

答えて

0

あなたがexchangeとして、envelopを使用して取ることができるいくつかの情報、delivery_tagrouting_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); 
関連する問題