我是一個嘗試在java客戶端實現Headers交換的新手。我知道這是「x-match」綁定參數的用途。當「x-match」參數設置爲「any」時,只有一個匹配的標題值就足夠了。或者,將「x-match」設置爲「all」則強制所有值必須匹配。 但任何人都可以爲我提供一個框架代碼,以便更好地理解。如何使用Java在RabbitMQ中實現標題交換?
7
A
回答
20
對於使用頭文件交換,你只需要聲明你交換爲標題鍵入:
channel.exchangeDeclare("myExchange", "headers", true);
然後,你需要聲明一個隊列,這將是該消息的最終目的地的消費者消費之前:
channel.queueDeclare("myQueue", true, false, false, null);
現在我們需要將交換綁定到隊列來聲明綁定。在這個聲明中,您設置了將您的交換消息路由到隊列的標題。一個示例可能是:
Map<String, Object> bindingArgs = new HashMap<String, Object>();
bindingArgs.put("x-match", "any"); //any or all
bindingArgs.put("headerName#1", "headerValue#1");
bindingArgs.put("headerName#2", "headerValue#2");
...
channel.queueBind("myQueue", "myExchange", "", bindingArgs);
...
這將使用headerName#1和headerName#2創建綁定。我希望這有幫助!
0
帶有頭部的類型首先聲明交換: -
channel.exchangeDeclare("Exchange_Header", "headers", true);
然後聲明隊列: -
channel.queueDeclare("Queue", true, false, false, null);
現在定義首部,並與隊列結合它: -
Map<String,Object> map = new HashMap<String,Object>();
map.put("x-match","any");
map.put("First","A");
map.put("Fourth","D");
channel.queueBind("Queue", "Exchange_Header", ROUTING_KEY ,map);
相關問題
- 1. 如何在RabbitMQ中實現循環法主題交換
- 2. RabbitMQ:如何在標題交換中使用複雜表達式?
- 3. 如何使用muleClient.request從Java實現異步AMQP-RabbitMQ實現?
- 4. 如何在java中使用RabbitMQ實現RPC機制
- 5. RabbitMq話題交換
- 6. RabbitMQ,話題交換
- 7. RabbitMQ標題交換與列表
- 8. 在rabbitmq-c中使用默認交換
- 9. Powershell:如何實現標準交換機?
- 10. 如何刪除RabbitMQ交換?
- 11. RabbitMQ話題交換:1交換vs多交換
- 12. 在BlackBerry中實現RabbitMQ
- 13. RabbitMQ標題交換使用「不」或「不適合其他任何人去這裏」
- 14. 主題交換與RabbitMQ中的直接交換
- 15. 如何在RabbitMQ上實現無阻塞?
- 16. 交換實現
- 17. 如何在VS2010中切換標題和實現?
- 18. 如何使用ng grid在AngularJS中實現原始標題和列標題
- 19. 如何在Mule中禁用異步AMQP-RabbitMQ實現中的tempQueues?
- 20. 話題交換含糊不清RabbitMQ
- 21. RabbitMQ和循環主題交換
- 22. RabbitMQ消息交換
- 23. 如何在Java中實現
- 24. 如何在Java中實現
- 25. 如何在Java中實現
- 26. 如何在Java中實現
- 27. 使用java實現「交集」方法
- 28. 如何實現在使用Java
- 29. RabbitMQ模擬話題交換與直接交換
- 30. 在RabbitMQ中使用哪種類型的交換(直接,扇出,主題,標題)的場景?
thanx!:),現在清楚了。 – user2857129
交換/隊列關係的好解釋。謝謝! – user1828780