我使用 RabbitMQ 作为消息代理。我有一个消费者和一个生产者。到目前为止,我已经创建了一个带有少量原始属性的有效负载。问题是,只要我需要来自消费者的有效负载的更多信息,我就需要更改有效负载以便我可以在消费者中处理:最后这项任务可能很繁重。
我想知道我是否可以使用某种地图作为有效负载,还是不推荐?像这样,我有一个通用的有效载荷。
另一方面,我们的应用程序中有 Serializable DTO。我想我可以创建一个包含 DTO 的有效负载?
我正在尝试找出最好的方法:)
我使用 RabbitMQ 作为消息代理。我有一个消费者和一个生产者。到目前为止,我已经创建了一个带有少量原始属性的有效负载。问题是,只要我需要来自消费者的有效负载的更多信息,我就需要更改有效负载以便我可以在消费者中处理:最后这项任务可能很繁重。
我想知道我是否可以使用某种地图作为有效负载,还是不推荐?像这样,我有一个通用的有效载荷。
另一方面,我们的应用程序中有 Serializable DTO。我想我可以创建一个包含 DTO 的有效负载?
我正在尝试找出最好的方法:)
如果您需要额外信息,您可以使用消息属性:
AMQP.BasicProperties.Builder builder =
new AMQP.BasicProperties().builder();
Map<String,Object> headerMap =
new HashMap<String, Object>();
headerMap.put("mykey1", myvalue1);
headerMap.put("mykey2", myvalue2);
builder.headers(headerMap);
channel.basicPublish("","myqueue",builder.build(),"message".getBytes());
使用headerMap
您可以添加或删除信息而无需修改您的消息
希望能帮助到你