1. 程式人生 > >python結合rabbitmq例項

python結合rabbitmq例項

 這一段時間學習了下rabbitmq,在學習的過程中,發現國內關於Python採用pika庫使用rabbitmq的資料很少,官網有這方面的資料,不過是都英文的。於是筆者結合自己的理解,就這方面內容寫了一些示例,總共有七篇筆記,分享出來。

筆記依次是循序漸進的,筆記內貼出的程式碼筆者都實際執行過,執行系統ubuntu 12.04,rabbitmq版本是2.7.1,python版本是2.7.3。

因為筆記裡提到一些名詞,雖然叫法不一樣,不過都是表達同樣的事物,所以有必要先說明下,以免產生疑惑。主要是兩個名詞:

  • producer 直譯為生成者,就是產生訊息的東東,筆記裡提到的傳送者、傳送端都是一個意思。如果把訊息比喻成任務,也可以理解為任務分配者。
  • consumer 直譯為消費者,就是接收訊息的東東 ,筆記裡提到的接收者、接收端都是一個意思。如果把訊息比喻成任務,也可以理解為工作者。

這篇主要記錄了在ubuntu下安裝rabbitmq服務的過程和安裝python pika庫的過程,並演示了單向傳送訊息的工作方式。

繼上一篇,演示了多個接收端情況下,訊息傳送的工作方式。

前面兩篇的示例,都只使用了一個佇列,訊息是依次傳送給繫結到該佇列的接收端。如果要廣播出去,就要使用交換機,本篇演示了交換機的工作方式。

第三篇的訊息是廣播出去的,所有接收端都會接收到,如果要精確指明訊息的接收端,就要使用路由鍵,本篇主要演示了路由鍵的工作方式。

第四篇的路由鍵是精確匹配的,有時用需要模糊匹配,本篇主要演示了路由鍵模糊匹配的工作方式。

前面五篇的訊息都是傳送出去就完事了,接收端並沒有將結果返回給傳送端。有些情況下需要接收端將接收到的訊息處理後再返回給傳送端,本篇演示了這種情況的處理方式。

上一篇只是傳送單條訊息,返回的結果自然是對應該條訊息,但是如果同時發出多條訊息,就會返回多個結果,如何將傳送的訊息和返回的結果一一對應起來呢?本篇演示了correlation id的工作方式,就是用來解決這個問題的。

相關推薦

python結合rabbitmq例項

 這一段時間學習了下rabbitmq,在學習的過程中,發現國內關於Python採用pika庫使用rabbitmq的資料很少,官網有這方面的資料,不過是都英文的。於是筆者結合自己的理解,就這方面內容寫了一些示例,總共有七篇筆記,分享出來。 筆記依次是循序漸進的,筆記內貼出的程式碼筆者都實際執行過,執行系統

springboot結合Rabbitmq例項分析

一.前言 本文介紹springboot整合Rabbitmq的具體使用.rabbitmq採用centos的安裝方式,具體詳細安裝方法可參考前面的文章:https://blog.csdn.net/u010520146/article/details/84454004 二.相關概念 訊

python使用rabbitmq例項三,交換機

交換機的工作原理:訊息傳送端先將訊息傳送給交換機,交換機再將訊息傳送到繫結的訊息佇列,而後每個接收端都能從各自的訊息佇列裡接收到資訊。 rabbitmq交換機工作原理 下面用send.py和receive.py來模擬實現交換機的功能。send.py表示傳送端,recei

python使用rabbitmq例項五,路由鍵模糊匹配

上一篇說了路由鍵的功能,通過設定路由鍵,可以將訊息傳送到相應的佇列,這裡的路由鍵是要完全匹配,比如info訊息的只能發到路由鍵為info的訊息佇列。 路由鍵模糊匹配,就是可以使用正則表示式,和常用的正則表示式不同,這裡的話“#”表示所有、全部的意思;“*”只匹配到一個詞。看

python使用rabbitmq例項六,遠端結果返回

前面的例子都有個共同點,就是傳送端傳送訊息出去後沒有結果返回。如果只是單純傳送訊息,當然沒有問題了,但是在實際中,常常會需要接收端將收到的訊息進行處理之後,返回給傳送端。 處理方法描述:傳送端在傳送資訊前,產生一個接收訊息的臨時佇列,該佇列用來接收返回的結果。其實在這裡接收

python】如何批量讀取資料夾的所有檔案資料,os模組與open函式結合使用例項

很多時候,由於資料眾多,分別儲存在資料夾裡,此時需要批量開啟檔案讀取,然後對資料整合進行操作。那麼就必須通過使用os模組和open函式相結合,通過os模組得到全部的檔案,然後通過open函式開啟檔案讀寫

Python-rabbitmq例項

import rabbitMq #!/usr/bin/python # coding=utf-8 # author=He import pika import sys import config import json class RabbitMq

python結合redis模擬隊列

bsp localhost main nec png red pop ~~ [1] 實在無聊就寫了個很小的python程序用來實現模擬redis隊列的代碼如下: redis_lpush.py #!/usr/bin/python3 import time import r

python 操作RabbitMQ

ack 模糊匹配 host star cal top con 消失 nbsp pip install pika 使用API操作RabbitMQ 基於Queue實現生產者消費者模型 View Code 對於RabbitMQ來說,生產和消費不再針對內存裏的一個Queue

python結合excel數據輕松實現接口自動化測試(一)

判斷 原因 一個 軟件測試 測試 相等 fin 完成 想去 在剛剛進入測試行業的時候,最開始也是做功能測試,我想很多夥伴和我一樣,覺得自動化測試都很高端,很神秘。迫不及待的想去學習作自動化測試。 以前比較常用數據庫+python做自動化,後面發現excel個人覺得更加適合,

python測試rabbitmq的消息收發

python rabbitmq send.py#!/usr/bin/env python # -*- coding: UTF-8 -*- import pika import random credentials = pika.PlainCredentials(‘ro

Python操作rabbitmq系列(一)

targe 紅色 入門 web 之間 cap ssa 隊列 技術 從本文開始,接下來的內容,我們將討論rabbitmq的相關功能。我的這些文章,最終是要實現一個項目(具體是什麽暫不透露)。前面每一篇,都是在為這個系統做準備。rabbitmq,是我們這個項目的關鍵部分之一。所

Python操作rabbitmq系列(三):多個接收端消費消息

name 連接 logs http clas header 消費者 exclusive pub 接著上一章。這一章,我們要將同一個消息發給多個客戶端。這就是發布訂閱模式。直接看代碼: 發送端: import pikaimport sysconnection = pika.B

python操作RabbitMQ

相關 cred 開源 callback 進行 偶數 生產者 開源協議 erro 介紹 RabbitMQ是一個在AMQP基礎上完整的,可復用的企業消息系統。他遵循Mozilla Public License開源協議。 MQ全稱為Message Queue, 消息隊列(MQ

Python操作rabbitmq系列(六):進行RPC調用

block 異常 遠程 轉換 調用 成了 mage chang 多少 此刻,我們已經進入第6章,是官方的最後一個環節,但是,並非本系列的最後一個環節。因為在實戰中還有一些經驗教訓,並沒體現出來。由於馬上要給同事沒培訓celery了。我也來不及寫太多。等後面,我們再慢慢補充。

Python操作rabbitmq系列(五):根據主題分配消息

method type 同時 elephant com .info err 現在 bin 接著上一章,使用exchange_type=‘direct‘進行消息傳遞。這樣消息會完全匹配後發送到對應的接收端。現在我們想幹這樣一件事: C1獲取消息中包含:orange內容的消息,

第五章:PythonRabbitMQ消息持久化

rabbitmq#測試RabbitMQ消息永久化 #1. 分隊列永久化和信息永久化 #2. 意思為當服務重啟後,隊列和消息還存在,可供客戶端接受 #3. 在服務器查看消息隊列命令./rabbitmqctl list_queues #send 端 import pika credentials = pik

第五章:PythonRabbitMQ 基本示例

rabbitmq#send 端import pikacredentials = pika.PlainCredentials(‘root‘, ‘Password1‘)connection = pika.BlockingConnection(pika.ConnectionParameters(‘10.3.151.

python爬蟲實例項目大全

agent 相冊 dont 公眾號 讀取 知識庫 server 微博 烏雲 WechatSogou [1]- 微信公眾號爬蟲。基於搜狗微信搜索的微信公眾號爬蟲接口,可以擴展成基於搜狗搜索的爬蟲,返回結果是列表,每一項均是公眾號具體信息字典。 DouBanSpider [2

python操作rabbitmq實現廣播效果

連接 lba cti all rec alt aid tin back 生產方(Fanout_Publisher.py) 1 # __author__ = ‘STEVEN‘ 2 import pika 3 #開啟socket 4 connection = pik