1. 程式人生 > >通過python程式碼理解rabbitmq訊息收發原理

通過python程式碼理解rabbitmq訊息收發原理

這裡寫圖片描述

一、通過python模擬收發訊息

這裡寫圖片描述
1、在各個節點上安裝epel源

# yum install  epel*  -y

2、安裝python庫

# yum --enablerepo=epel -y install python2-pika

3、在rabbitmq-server節點上
1)、建立使用者

# rabbitmqctl add_user wuyeliang password 

2)、建立虛擬主機

# rabbitmqctl add_vhost /my_vhost

3)、賦予許可權

# rabbitmqctl set_permissions -p /my_vhost wuyeliang ".*"
".*" ".*"

4、在rabbitmq節點上模擬發訊息,程式碼如下

# vi send_msg.py
#!/usr/bin/env python
import pika
credentials = pika.PlainCredentials('wuyeliang', 'password') #注意使用者名稱及密碼
connection = pika.BlockingConnection(pika.ConnectionParameters(
                                     'localhost',
                                     5672
, '/my_vhost', credentials)) channel = connection.channel() channel.queue_declare(queue='Hello_World') channel.basic_publish(exchange='', routing_key='Hello_World', body='Hello RabbitMQ World!'
) print(" [x] Sent 'Hello_World'") connection.close()

這裡寫圖片描述

4、在client節點上模擬收訊息,程式碼如下

# vi receive_msg.py
 #!/usr/bin/env python
import signal
import pika
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
signal.signal(signal.SIGINT, signal.SIG_DFL)
credentials = pika.PlainCredentials('wuyeliang', 'password')
connection = pika.BlockingConnection(pika.ConnectionParameters(
                                     'dlp.srv.world',
                                     5672,
                                     '/my_vhost',
                                     credentials))
channel = connection.channel()
channel.queue_declare(queue='Hello_World')
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
channel.basic_consume(callback,
                      queue='Hello_World',
                      no_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

這裡寫圖片描述

相關推薦

通過python程式碼理解rabbitmq訊息收發原理

一、通過python模擬收發訊息 1、在各個節點上安裝epel源 # yum install epel* -y 2、安裝python庫 # yum --enablerep

無需複雜的數學描述,通過簡單程式碼理解卷積模組

選自 towardsdatascience,作者:Paul-Louis Pröve,機器之心編譯,參與:Panda。 比起晦澀複雜的數學或文字描述,也許程式碼能幫助我們更好地理解各種卷積模組。電腦科學家 Paul-Louis Pröve 用 Keras 對瓶頸模組、Inception 模組、殘差模組

基於Python語言使用RabbitMQ訊息佇列(三)

釋出/訂閱 前面的教程中我們已經建立了一個工作佇列。在一個工作佇列背後的假設是每個任務恰好會傳遞給一個工人。在這一部分裡我們會做一些完全不同的東西——我們會發送訊息給多個消費者。這就是所謂的“釋出/訂閱”模式。 為了解釋這種模式,我們將會構建一個簡單的日誌系

區塊鏈:通過演示Demo理解區塊鏈執行原理

BlockChain Demo 開啟比特幣Demo演示網頁區塊鏈Demo演示地址,我們可以看到如下頁面。 點選開始演示 接下來是BlockChain Demo 2.0的新功能介紹 關於Demo功能區的介紹 顯示每個區塊儲存的資訊

基於Python語言使用RabbitMQ訊息佇列(二)

工作佇列 在第一節我們寫了程式來向命名佇列傳送和接收訊息 。在本節我們會建立一個工作佇列(Work Queue)用來在多個工人(worker)中分發時間消耗型任務(time-consuming tasks)。 工作佇列(又叫做: Task Queues)背後

rabbitmq訊息佇列原理

一、rabbitmq架構 RabbitMQ是一個流行的開源訊息佇列系統,是AMQP(高階訊息佇列協議)標準的實現,由以高效能、健壯、可伸縮性出名的Erlang語言開發,並繼承了這些優點。rabbitmq簡單架構如下: 上圖簡單展示了rabbitmq的架構

CANOpen系列教程06_結合程式碼理解CAN底層收發資料(含STM32例程)

該系列教程已經在我的個人微信公眾號**「strongerHuang」**整理並分享。因在這裡分享文章,還需單獨整理一遍,時間有限,就不再一一重複整理出來了。 想要檢視更多相關教程,可以關注我的個人微信公眾號「strongerHuang」,回覆【CANOpen系

python開發筆記--如何通過python程式碼進行shell命令執行

    話說又到了做學習筆記的時間,感覺現在做總結筆記已經成了我工作的一部分~    今天來說一下我們在python中如何去執行shell命令操作:(以前我竟然不知道,簡直不能太簡單了)    1.第一種方式:    import os    os.system('cd /U

通過抓包,實現Python模擬登陸各網站,原理分析!

瀏覽器中 cda class 登陸 驗證 查詢 圖片 自動化 cap 一、教程簡介 1.1 基本介紹 通過分析登陸流程並使用 Python 實現模擬登陸到一個實驗提供的網站,在實驗過程中將學習並實踐 Python 的網絡編程,Python 實現模擬登陸的方法,使

Storm框架:如何消費RabbitMq訊息(程式碼案例)

1、定義拓撲topology public class MessageTopology { public static void main(String[] args) throws Exception { //組裝topology TopologyBuilder

Tensorflow 反捲積(DeConv)實現原理+ 手寫python程式碼實現反捲積(DeConv)

1、反捲積原理 反捲積原理不太好用文字描述,這裡直接以一個簡單例子描述反捲積。 假設輸入如下: [[1,0,1], [0,2,1], [1,1,0]]  反捲積卷積核如下: [[ 1, 0, 1], [-1, 1, 0], [ 0,-1, 0]]  

通過程式碼理解 C++ 繼承

//C++ 單繼承 #include <iostream> using namespace std; class Shape { public: void setWidth(int w) { width = w; } void setHeight(int h) {

python 64式: 第3式、rabbitmq訊息佇列使用

topicProductor.py內容如下 #!/usr/bin/env python # -*- coding: utf-8 -*- import pika import sys ''' 問題: 實現基於rabbitmq的生產者和消費者,消費者可以支援繫結路由鍵為notification.

通過HTTP請求獲取RabbitMQ佇列訊息的方法

https://www.jianshu.com/p/9edf12944935 由於自動化測試的需要,現在要用一種簡單的方法可以獲取並驗證RabbitMQ中的訊息,而不是費勁通過程式再寫一個消費者。其實,RabbitMQ提供了HTTP API,可以幫助我們實現這個需求。 1. RabbitMQ

pythonRabbitMQ訊息佇列

RabbitMQ:訊息佇列 PY裡的佇列有:執行緒QUEUE、程序QUEUE 程序queue可以用於父程序與子程序進行互動,或者同屬於一父程序下多個子程序進行互動,但如果是兩個獨立的程式,是不能用這個QUEUE進行通訊的。 兩個獨立的程式之間,要找一箇中間代理,比如可以用socket通訊

RabbitMQ訊息佇列的基本原理

1.背景 RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue)的開源實現。 2.應用場景 2.1非同步處理 場景說明:使用者註冊後,需要發註冊郵件和註冊簡訊,傳統的做法有兩種1.序列的方式;2.並行的方

C++:通過C++程式碼簡單理解程序間的通訊機制:共享記憶體

下面用共享對映檔案的方式實現程序間通訊,程式碼可以執行。 一、淺理解 每個程序有自己獨立的空間,一個程序無法訪問其他程序的資料。就好像兩個是互不干涉的個體,想讓它們進行通訊(交換資料),就必須有一段它們都可以訪問到的空間,作為中間介質。在計算機中,可以存放資料的地方分為記憶體和硬

還在人工爬資料?不用定期敲爬蟲,也能【自動化】訊息爬取的祕訣(內附Python程式碼

RSS服務Python實做一、 安裝我們可以透過Python的套件包:「feedparser 」 。讓我們可以輕易的透過Python解析 RSS。Windows 安裝,開啟Command Line:pip install feedparserUbuntu安裝,開啟Terminal:sudo pip insta

(九)RabbitMQ訊息佇列-通過Headers模式分發訊息

Headers型別的exchange使用的比較少,以至於官方文件貌似都沒提到,它是忽略routingKey的一種路由方式。是使用Headers來匹配的。Headers是一個鍵值對,可以定義成Hashtable。傳送者在傳送的時候定義一些鍵值對,接收者也可以再繫結時候傳入一些鍵值對,兩者匹配的

(八)RabbitMQ訊息佇列-通過Topic主題模式分發訊息

前兩章我們講了RabbitMQ的direct模式和fanout模式,本章介紹topic主題模式的應用。如果對direct模式下通過routingkey來匹配訊息的模式已經有一定了解那fanout也很好理解。簡單的可以理解成direct是通過routingkey精準匹配的,而topic是通過r