国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

rabbitmq(中間消息代理)在python中的使用詳解

2020-02-16 11:05:39
字體:
來源:轉載
供稿:網友

在之前的有關線程,進程的博客中,我們介紹了它們各自在同一個程序中的通信方法。但是不同程序,甚至不同編程語言所寫的應用軟件之間的通信,以前所介紹的線程、進程隊列便不再適用了;此種情況便只能使用socket編程了,然而不同程序之間的通信便不再像線程進程之間的那么簡單了,要考慮多種情況(比如其中一方斷線另一方如何處理;消息群發,多個程序之間的通信等等),如果每遇到一次程序間的通信,便要根據不同情況編寫不同的socket,還要維護、完善這個socket這會使得編程人員的工作量大大增加,也使得程序更易崩潰。所以,一般遇到這種情況,便使用消息隊列MQ(Message Queue),那么問題來了。

1. 什么是消息隊列MQ?

MQ是一種應用程序對應用程序的通信方法。應用程序通過讀出(寫入)隊列的消息(針對應用程序的數據)來通信,而無需使用專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,排隊指的是應用程序通過 隊列來通信。隊列的使用排除了接收和發送應用程序同時執行的要求。

2. 什么是rabbitmq?如何使用它?

RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。

RabbitMQ也是前面所提到的生產者消費者模型,一端發送消息(生產任務),一端接收消息(處理任務)。

rabbitmq的詳細使用(包括各種系統的安裝配置)可參見其官方文檔:http://www.rabbitmq.com/documentation.html

由于應用程序之間的通信情況異常復雜,rabbitmq支持的編程語言有10多種,所以在此博客中不可能完全演示rabbitmq的所有使用。本片博客將會介紹rabbitmq在python中的基本使用,如果你只想使用rabbitmq完成一些簡單的任務,則本篇博客足以滿足你的需求;如果你想深入學習了解rabbitmq的工作原理,那么讀完本篇博客,你可以更容易的讀懂rabbitmq的官方文檔;當然這些只限于你在使用python編程。

在python中我們使用pika(第三方模塊,使用pip安裝即可使用)模塊進行rabbitmq的操作,接下來,使用python實現一個rabbitmq最簡單的通信。

In the diagram below, "P" is our producer and "C" is our consumer. The box in the middle is a queue - a message buffer that RabbitMQ keeps on behalf of the consumer.

Our overall design will look like:

Producer sends messages to the "hello" queue. The consumer receives messages from that queue.

例一(簡單的消息收發):

Sending

Our first programsend.pywill send a single message to the queue. The first thing we need to do is to establish a connection with RabbitMQ server.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阜市| 哈巴河县| 红河县| 冕宁县| 深水埗区| 镇平县| 长寿区| 肥乡县| 烟台市| 加查县| 永德县| 上林县| 兰考县| 乌拉特中旗| 石棉县| 德安县| 墨玉县| 岳阳县| 中超| 双桥区| 蕲春县| 霞浦县| 毕节市| 应用必备| 奇台县| 汾阳市| 望谟县| 东平县| 兴城市| 庆云县| 依兰县| 临潭县| 论坛| 中江县| 南皮县| 松原市| 长治市| 怀仁县| 甘肃省| 松桃| 德江县|