是否有方法使用java客户端从Amqp 0.9.1 RabbitMq代理获取绑定到队列的所有头?
使用com。兔子。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 楼答案
这个问题是重复的
List bindings for an exchange with rabbitmq java client API
虽然java客户端中似乎没有此功能,但可以通过代理上的命令行查看绑定(包括头参数)
有关更多选项,请参阅RabbitMQ文档 https://www.rabbitmq.com/rabbitmqctl.8.html#list_bindings