基于java的rabbitmq生产者发送带有 header 的消息

标签 java rabbitmq

我正在尝试将rabbitmq生产者的C#版本转换为java版本,我遇到的一个问题是弄清楚如何发送具有多个字符串值的消息头。我想我可能已经找到了它,但是我如何向 header.txt 添加附加值?当前代码:

 AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties().builder();
 builder.headers(Collections.<String,Object>singletonMap("pId",ID));
 builder.headers(Collections.<String,Object>singletonMap("query",searchQ));
 pchannel.basicPublish("","best_queue",builder.build(),post.getBytes());
 System.out.println(" [x] Sent '" + msgcount.toString() + "' MESSAGES.");

但只出现最后一个 header 属性。如何向 header 添加更多值?

最佳答案

第二个替换第一个。

尝试使用:

  Map<String,Object> headerMap = new HashMap<String, Object>();
  headerMap.put(key,value)
  headerMap.put(key1,value1)
  headerMap.put(key2,value2)
  builder.headers(headerMap);
  pchannel.basicPublish("","best_queue",builder.build(),post.getBytes());
  System.out.println(" [x] Sent '" + msgcount.toString() + "' MESSAGES.");

这样应该可以按您的预期工作

关于基于java的rabbitmq生产者发送带有 header 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138922/

相关文章:

node.js - 使用 amqplib npm 模块的 RabbitMQ 中的连接被拒绝错误

Grails RabbitMQ native 过滤发送给消费者的消息

java - 如何将 Intent 额外对象[]转换为MyClass[]

java - 我的服务器和客户端套接字程序只是挂起而不打印任何内容

java - 使用 JFrame 调整组件大小

Erlang AMQP 客户端库

java - Spring RabbitMQ - xml配置 - 手动ack

rabbitmq - 有没有办法将 nestjs cqrs 与 rabbitmq 事件总线/队列一起使用。从命令中分派(dispatch)微服务处理的事件是否反模式?

java - CompareTo() 在客户端/服务器应用程序中给出相互冲突的结果?

java - 当我事先检查是否存在元素时,为什么会引发 NoSuchElement 异常?