使用com.rabbitmq.client和AMQP版本0.9.1,我正在执行以下操作以声明持久标头交换,声明持久队列,并将队列绑定到带有标头的交换。
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("headerName1", "headerValue1");
channel.queueBind("myQueue", "myExchange", "", bindingArgs);
如果我再次运行相同的代码,但使用不同的标头名称/值,则实际上是在代理上的队列中添加另一个标头(而不是替换前一个)。
即
...
bindingArgs.put("headerName2", "headerValue2");
...
java Rabbitmq客户端是否有办法从代理获取队列的所有绑定标头?
这将返回以下内容:
"headerName1" : "headerValue1"
"headerName2" : "headerValue2"
答案 0 :(得分:0)
此问题是
的重复项List bindings for an exchange with rabbitmq java client API。
虽然此功能似乎不在Java客户端中,但是可以通过代理上的命令行查看绑定(包括标头参数)。
Request
有关更多选项,请参见RabbitMQ文档 https://www.rabbitmq.com/rabbitmqctl.8.html#list_bindings