2012-11-19 9 views
6

Ho impostato uno scambio di argomenti in modo tale che la coda dei consumatori sia associata a "# .topic". Mi piacerebbe utilizzare diverse strategie di riconoscimento basate sul prefisso. La chiave di routing completa viene inviata al consumatore? In tal caso, come posso accedervi? Una risposta in termini di concetti AMQP sarebbe probabilmente sufficiente, ma una risposta che riguardi rabbitmq-c sarebbe l'ideale.AMQP - Il consumatore ha accesso alla chiave di routing?

risposta

7

Anche quando si esegue un'associazione come nell'esempio, il messaggio ricevuto contiene la chiave di instradamento completa. Ciò significa che puoi estrarlo per aiutarti a elaborare il messaggio. Sfortunatamente so come farlo in Java, quindi cerca di estrapolarlo da lì.

QueueingConsumer.Delivery delivery = consumer.nextDelivery(); 
String routingKey = delivery.getEnvelope().getRoutingKey(); 

L'oggetto di consegna contiene un corpo che è il carico utile e può essere recuperare con delivery.getBody() e un oggetto busta che contiene altre informazioni come la chiave di routing completa.

+0

Su C# api, è possibile accedere alla chiave di instradamento tramite la proprietà 'RabbitMQ.Client.Events.BasicDeliverEventArgs.RoutingKey' (l'oggetto in Basic Deliver Event callback) – Dinei

Problemi correlati