點擊上方藍字關注咱們python
1mysql
什麼是Rabbitmq?sql
Rabbitmq是一個在AMQP基礎上完整的,可複用的企業消息系統。他遵循Mozilla Public License開源協議。docker
MQ全稱爲Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通訊方法。應用程序經過讀寫出入隊列的消息(針對應用程序的數據)來通訊,而無需專用鏈接來連接它們。消 息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊,直接調用一般是用於諸如遠程過程調用的技術。排隊指的是應用程序經過隊列來通訊。隊列的使用除去了接收和發送應用程序同時執行的要求。數據庫
通俗點來說:把Rabbitmq想象成一個郵局,當你把你想要發佈的郵件放在郵箱中時,你能夠肯定郵差先生最終將郵件發送給你的收件人。在這個比喻中,Rabbitmq是郵政信箱,郵局和郵遞員。json
消息發送的示意圖:瀏覽器
2微信
如何搭建一個Rabbitmq服務? app
step1:檢索rabbitmq 鏡像
docker search rabbitmq編輯器
step2:下載rabbitmq 鏡像
docker pull rabbitmq:management
step3: 啓動rabbitmq 容器
docker run -d -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 rabbitmq:management
step4: 登陸瀏覽器查看mq服務是否正常
3
建立一個虛擬主機
建立一個虛擬主機( virtual hosts,系統默認會建立一個/) 而且給guest 帳號賦上權限(此步驟可省略)
若是須要手動建立的話,須要單首創建而且賦權限給guest帳號。
4
Rabbitmq 發消息簡單模式
step1:獲取Rabbitmq服務的鏈接
step2:建立一個信道
step3:聲明一個隊列
step4:向列表存放消息
step5:關閉鏈接
具體代碼以下:
import jsonimport pikaimport datetime
#生成消息入口處def get_message(): for i in range(10): #生成10條消息 message=json.dumps({'id': "10000%s" % i, "amount": 100 * i,"name":"tony","createtime":str(datetime.datetime.now())}) producter(message)
#消息生產者 def producter(message):#消息生產者 # 獲取與rabbitmq 服務的鏈接,虛擬隊列須要指定參數 virtual_host,若是是默認的能夠不填(默認爲/),也能夠本身建立一個 connection = pika.BlockingConnection(pika.ConnectionParameters(host='127.0.0.1', port=5672,credentials=pika.PlainCredentials('guest', 'guest'))) #建立一個 AMQP 信道(Channel),建造一個大郵箱,隸屬於這家郵局的郵箱 channel = connection.channel() # 聲明消息隊列tester,消息將在這個隊列傳遞,如不存在,則建立 channel.queue_declare(queue='tester') # 向隊列插入數值 routing_key的隊列名爲tester,body 就是放入的消息內容,exchange指定消息在哪一個隊列傳遞,這裏是空的exchange但仍然可以發送消息到隊列中,由於咱們使用的是咱們定義的空字符串「」exchange(默認的exchange) channel.basic_publish(exchange='', routing_key='tester', body=message) # 關閉鏈接 connection.close()
if __name__=="__main__": get_message()#程序執行入口
5
檢查mq中tester隊列中是否產生了10條消息記錄
以下截圖所示:
友情提示:「無量測試之道」原創著做,歡迎關注交流,禁止第三方不顯示文章來源時轉載。更多原創文章請掃碼關注查看,合做請聯繫:loadkernel@126.com。
QQ技術交流羣:41564936
若是你以爲文章不錯的話,分享、收藏,在看,關注、打賞將會是對個人最大支持,也是我持續更新的最大動力。
本文分享自微信公衆號 - 無量測試之道(gh_858a1aa25a6d)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。