RabbitMQ的headers exchange是依binding queue的header屬性決定訊息的傳送。
在RabbitMQ UI管理介面測試 headers excahnge。
在[Exchanges]頁面建立exchange [Name]為"test-exchange-001",[Type]設為headres
。
在[Queues]頁面建立queue名為"test-queue-001"。
在test-exchange-001的設定頁面建立與test-queue-001的binding,在[Arguments]設定以下參數即為headers:
- name=john
- city=taipei
- x-match=all
x-match=all
作用為全部的headers參數相符時才傳送訊息到binding queue。
在test-exchange-001頁面的[Publish message]設定[Headers]參數如下;[Payload]輸入要傳送的訊息為"hello"。
- name=john
- city=taipei
按下Publish message發送即可成功把訊息發送給test-queue-001。
不過當只有一個headers參數相符時則無法把訊息送到binding queue,因為x-match=all
要求全部headers參數相符才會轉送。
例如下面只有name=john
參數相符,但少了另一city=taipei
則無法把訊息送給test-queue-001。
若binding headers設定x-match=any
則只要任一header參數滿足時即能傳送到binding queue。
沒有留言:
張貼留言