有没有办法使用Java客户端从Amqp 0.9.1 RabbitMq代理获取所有标头绑定到队列的信息?

时间:2018-08-21 15:27:38

标签: java rabbitmq amqp

使用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"

1 个答案:

答案 0 :(得分:0)

此问题是

的重复项

List bindings for an exchange with rabbitmq java client API

虽然此功能似乎不在Java客户端中,但是可以通过代理上的命令行查看绑定(包括标头参数)。

Request

有关更多选项,请参见RabbitMQ文档 https://www.rabbitmq.com/rabbitmqctl.8.html#list_bindings