das Konzept des "ungültigen Routing-Schlüssels" existiert nicht, da Sie dynamische Warteschlangen an die Vermittlungsstellen binden können.
Btw, was Sie suchen, ist "unroutable Nachrichten", müssen Sie das mandatory
Flag verwenden und ReturnListener
im gleichen Kanal implementieren, wenn eine Nachricht keine Warteschlange erreichen wird an den Handler umgeleitet werden. In diesem auf diese Weise (ist der Code, Java, aber in C# ist mehr oder weniger das gleiche):
boolean isMandatory = true; // if true the message will be handled by HandlingReturnListener
// if false the message will be dropped!
channel.addReturnListener(new ReturnListener() {
public void handleReturn(int replyCode, String replyText, String exchange, String routingKey, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println(replyText + ":" + replyCode);
System.out.println("******** UnHandled Message ***************");
}
});
String myExchange = "myUnroutableExchange_";
channel.exchangeDeclare(myExchange, "topic", false, false, null);
channel.basicPublish(myExchange, "NO_KEY", isMandatory, null, "".getBytes());
'Veröffentlichen Confirm' bestätigen, dass die Nachricht der Server nicht die Warteschlange erreicht. – Gabriele