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

首頁 > 編程 > Python > 正文

python RabbitMQ 使用詳細介紹(小結)

2020-02-15 23:33:40
字體:
來源:轉載
供稿:網友

上節回顧

主要講了協程、進程、異步IO多路復用。

協程和IO多路復用都是單線程的。

epoll  在linux下通過這個模塊libevent.so實現
gevent  在底層也是用了libevent.so

gevent可以理解為一個更上層的封裝。

使用select或者selectors,每接收或發送數據一次都要select一次

twisted異步網絡框架,強大又龐大,不支持python3 (代碼量python中排top3)。幾乎把所有的網絡服務都重寫了一遍。

一、RabbitMQ 消息隊列介紹

RabbitMQ也是消息隊列,那RabbitMQ和之前python的Queue有什么區別么?

py 消息隊列:
    線程 queue(同一進程下線程之間進行交互)
    進程 Queue(父子進程進行交互 或者 同屬于同一進程下的多個子進程進行交互)

如果是兩個完全獨立的python程序,也是不能用上面兩個queue進行交互的,或者和其他語言交互有哪些實現方式呢。

【Disk、Socket、其他中間件】這里中間件不僅可以支持兩個程序之間交互,可以支持多個程序,可以維護好多個程序的隊列。

像這種公共的中間件有好多成熟的產品:
RabbitMQ
ZeroMQ
ActiveMQ
……

RabbitMQ:erlang語言 開發的。

Python中連接RabbitMQ的模塊:pika 、Celery(分布式任務隊列) 、haigha

可以維護很多的隊列

RabbitMQ 教程官網:http://www.rabbitmq.com/getstarted.html

幾個概念說明:

Broker:簡單來說就是消息隊列服務器實體。
Exchange:消息交換機,它指定消息按什么規則,路由到哪個隊列。
Queue:消息隊列載體,每個消息都會被投入到一個或多個隊列。
Binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。
Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
vhost:虛擬主機,一個broker里可以開設多個vhost,用作不同用戶的權限分離。
producer:消息生產者,就是投遞消息的程序。
consumer:消息消費者,就是接受消息的程序。
channel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務

二、RabbitMQ基本示例.

1、Rabbitmq 安裝

ubuntu系統

install rabbitmq-server # 直接搞定

以下centos系統

1)Install Erlang

# For EL5:rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm# For EL6:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm# For EL7:rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpmyum install erlang            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭泽县| 安阳县| 宝鸡市| 左权县| 上饶市| 灌南县| 栾城县| 古浪县| 如皋市| 都昌县| 谢通门县| 托克逊县| 桐柏县| 和静县| 宽城| 普兰县| 尼木县| 吉首市| 安庆市| 南开区| 凤山市| 安陆市| 宁城县| 孝义市| 修武县| 泾川县| 乌兰察布市| 南安市| 清镇市| 博野县| 松溪县| 兰溪市| 光泽县| 临漳县| 延庆县| 遂宁市| 延寿县| 梅州市| 科技| 蒙阴县| 九江县|