繁体   English   中英

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

[英]Is there a way to get all headers bound to a queue from an Amqp 0.9.1 RabbitMq broker using the java client?

将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"

这个问题是重复的

列出绑定以便与Rabbitmq Java客户端API进行交换

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

rabbitmqctl list_bindings

请参阅RabbitMQ文档以获取更多选项https://www.rabbitmq.com/rabbitmqctl.8.html#list_bindings

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM