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

首頁 > 編程 > Python > 正文

利用Python操作消息隊(duì)列RabbitMQ的方法教程

2020-02-16 01:54:22
字體:
供稿:網(wǎng)友

前言

RabbitMQ是一個在AMQP基礎(chǔ)上完整的,可復(fù)用的企業(yè)消息系統(tǒng)。他遵循Mozilla Public License開源協(xié)議。
MQ全稱為Message Queue, 消息隊(duì)列(MQ)是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過讀寫出入隊(duì)列的消息(針對應(yīng)用程序的數(shù)據(jù))來通信,而無需專用連接來鏈接它們。消 息傳遞指的是程序之間通過在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不是通過直接調(diào)用彼此來通信,直接調(diào)用通常是用于諸如遠(yuǎn)程過程調(diào)用的技術(shù)。排隊(duì)指的是應(yīng)用程序通過 隊(duì)列來通信。隊(duì)列的使用除去了接收和發(fā)送應(yīng)用程序同時執(zhí)行的要求。

應(yīng)用場景:

RabbitMQ無疑是目前最流行的消息隊(duì)列之一,對各種語言環(huán)境的支持也很豐富,作為一個.NET developer有必要學(xué)習(xí)和了解這一工具。消息隊(duì)列的使用場景大概有3種:

     1、系統(tǒng)集成,分布式系統(tǒng)的設(shè)計(jì)。各種子系統(tǒng)通過消息來對接,這種解決方案也逐步發(fā)展成一種架構(gòu)風(fēng)格,即“通過消息傳遞的架構(gòu)”。

     2、當(dāng)系統(tǒng)中的同步處理方式嚴(yán)重影響了吞吐量,比如日志記錄。假如需要記錄系統(tǒng)中所有的用戶行為日志,如果通過同步的方式記錄日志勢必會影響系統(tǒng)的響應(yīng)速度,當(dāng)我們將日志消息發(fā)送到消息隊(duì)列,記錄日志的子系統(tǒng)就會通過異步的方式去消費(fèi)日志消息。

     3、系統(tǒng)的高可用性,比如電商的秒殺場景。當(dāng)某一時刻應(yīng)用服務(wù)器或數(shù)據(jù)庫服務(wù)器收到大量請求,將會出現(xiàn)系統(tǒng)宕機(jī)。如果能夠?qū)⒄埱筠D(zhuǎn)發(fā)到消息隊(duì)列,再由服務(wù)器去消費(fèi)這些消息將會使得請求變得平穩(wěn),提高系統(tǒng)的可用性。

一、安裝環(huán)境

首先是在 Linux 上安裝 rabbitmq

# 環(huán)境為CentOS 7yum install rabbitmq-server # 安裝RabbitMQsystemctl start rabbitmq-server # 啟動systemctl enable rabbitmq-server # 開機(jī)自啟systemctl stop firewall-cmd  # 臨時關(guān)閉防火墻

然后用 pip 安裝 Python3 的開發(fā)包

pip3 install pika

安裝好軟件之后可以訪問http://115.xx.xx.xx:15672/來訪問自帶的 web 頁面來查看和管理 RabbitMQ。默認(rèn)管理員的用戶密碼都是guest

二、簡單的向隊(duì)列中加入消息

#!/usr/bin/env python3# coding=utf-8# @Time : 2017/6/13 19:25# @Author : Shawn# @Blog : https://blog.just666.cn# @Email : shawnbluce@gmail.com# @purpose : RabbitMQ_Producerimport pika# 創(chuàng)建連接對象connection = pika.BlockingConnection(pika.ConnectionParameters(host='115.xx.xx.xx'))# 創(chuàng)建頻道對象channel = connection.channel()# 指定一個隊(duì)列,如果該隊(duì)列不存在則創(chuàng)建channel.queue_declare(queue='test_queue')# 提交消息for i in range(10): channel.basic_publish(exchange='', routing_key='test_queue', body='hello,world' + str(i)) print("sent...")# 關(guān)閉連接connection.close()            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 河南省| 孟连| 台南市| 衡南县| 鲁甸县| 葫芦岛市| 新昌县| 威远县| 九江县| 玉溪市| 会宁县| 来安县| 陇西县| 法库县| 诏安县| 山东省| 闸北区| 钟祥市| 光泽县| 额济纳旗| 藁城市| 定结县| 上高县| 曲松县| 七台河市| 刚察县| 辉县市| 社会| 万宁市| 和硕县| 东乌| 调兵山市| 浦东新区| 海安县| 敖汉旗| 铁岭市| 禹城市| 德令哈市| 全椒县| 茶陵县| 绥阳县|