如今不少開源軟件都提供了對應的web管理界面,rabbitmq也不例外,rabbitmq提供了一個web插件。當rabbit-server啓動以後,即在瀏覽器中經過http://localhost:15672/地址訪問頁面,提供一個比命令rabbitmqctl更友好的學習rabbitmq的方式。能夠簡單方便的經過配置rabbitmq,並能夠向exchange和queue中發消息來驗證本身的理解。以下圖:python
這是處理邏輯最簡單的exchange類型,實際上它沒有任何邏輯,它把進入該exchange的消息所有轉發給每個綁定的隊列中,若是這個exchange沒有隊列與之綁定,消息會被丟棄。web
測試:
新建一個fanout類型的exchange,名稱叫fanoutTest,並綁定兩個routing key是hello.world的隊列,以下圖所示。瀏覽器
而後經過exchange發送消息,routing key能夠隨便填寫,由於是fanout類型的exchange,routing key不起做用。點擊publish按鈕,便可發送消息。async
兩個消息隊列都接收到了對應的消息,以下圖所示,(消費隊列的時候有個Requeue的選項,若是是「Yes」,消息會再入隊,若是是「NO」,則消息被消費以後隊列中就不會存在這個消息了)學習
這種類型的交換機Fancout 類型的交換機智能一些,它會根據routing key來決定把消息具體扔到哪一個消息隊列中。經過exchange發消息的時候會指定一個routing key,只有當routing key和與隊列綁定的routing key同樣的時候,消息纔對發送到對應的消息隊列。即,若是與某個隊列綁定的routing key叫hello.world,則經過exchange發送的routing key必須也是hello.world,該隊列才能接收到消息(可按上述步驟進行驗證)。這種狀況下,隊列之間是互斥關係,一個消息最多隻能進入一個隊列。測試
Topic exchange是最靈活的exchange,它會把exchange的routing key與綁定隊列的routing key進行模式匹配。Routing key中能夠包含 和#兩種符號,#號能夠用來匹配一個或者多個單詞,用來匹配正好一個單詞。官方的下圖很好地說明了這個問題,讀者最好本身動手驗證一下。spa
python有多個能夠接入rabbitmq的庫,pika是官方推薦的一個。我在公司批量建立消息隊列的需求,因而寫了一個python批量建立消息隊列的腳本。
首先安裝pika:
sudo pip install pika==0.10.0插件
請輸入代碼 __author__ = 'tianbing' import os import sys import pika def createVerifyCardQueues(): credentials = pika.PlainCredentials('your user', 'your password') connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,"/",credentials)) channel = connection.channel() name_prefix = "merchant.verifycard.async" exchange_name = "paybiz.merchant.exchange" channel.queue_declare() start=10 end = 26 for biz_type in range(start, end): queue_name = name_prefix + str(biz_type) channel.queue_declare(queue_name,False,True) channel.queue_bind(queue_name,exchange_name,queue_name) if __name__ == "__main__": createVerifyCardQueues()