2015-11-17 35 views
0

我使用RabbitMQ作爲消息代理。我有一個消費者和一個製片人。到目前爲止,我已經創建了幾個基本屬性的有效載荷。問題是,只要我需要消費者有效載荷中的更多信息,我就需要更改有效載荷,以便我可以在消費者中進行處理:最後這項任務可能很重。消費者和生產者之間使用哪種類型的消息

我想知道如果我可以使用某種地圖作爲有效載荷或不推薦?像這樣,我有一個通用的有效載荷。

另一方面,我們在我們的應用程序中有Seri​​alizable DTO。我想我可以創建一個包含DTO的Payload?

我試圖找出做到這一點:)最好的辦法

回答

0

,如果你需要額外的信息,您可以使用消息屬性:

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您可以添加或刪除信息不修改您的消息

希望它有幫助

+0

我明白了,但有什麼意思,然後有一個身體參數? – Rapster