RabbitMQ消息中間件技術精講7 發送自定義屬性消息
Binding-綁定
Exchange和Exchange、exchange和queue之間的連接關係
Binding中可以包含Routing Key或參數
Queue-消息隊列
消息隊列,實際存儲消息數據
屬性:
Durability:是否持久化。Durable:是,Transient:否
Auto Delete:如選yes,代表當最後一個監聽被移除之後,該Queue會自動被刪除
Message-消息
伺服器和應用程序之間傳遞的數據。本質上就是一段數據,由Properties和Payload(Body)組成。
常用屬性:delivery mode、headers(自定義屬性)
其他屬性:content_type、content_encoding(字符集)、priority(優先順序0-9)
Correlation_id:可以理解為消息的id 一般是業務 時間戳等。reply_to:做成輝隊列的時候失敗後返回給那個隊列
Expiration:失效時間、message_id 消息id
可以自定義屬性:
Timestamp、type、user_id、app_id、cluster_id
實現發送帶有附件信息的消息:
AMQP.BasicProperties properties = new AMQP.BasicProperties().builder().build();
可以鏈式。如下圖:
我們來設置過期時間、自定義屬性:
在發送消息的時候,將properties帶上:
啟動生產者,查看發送了5條消息;10s之後,五條消息自動過期。
消費端,消費消息修改:
啟動消費者消費,查看獲取到的自定義信息:
我們可以看到,消費者輸出的消息是生產者發送的消息。目標達到。
Virtual host – 虛擬主機
虛擬地址,用於進行邏輯隔離的,最上層的消息路由
需要注意:
1:一個virtual hosot裡面可以同時存在多個exchange和queue
2:同一個virtual host裡面不能有相同的exchange或queue
總結:
通過本篇,我們主要學會了怎麼在發送消息的是,帶上其他參數及自定義參數信息的發送及獲取。
下節預告:從下一節開始,我們將進入rabbitmq高級篇。如:消息如果保證100%的投遞、冪等性等
TAG:凱哥java |